SELECT f_geometry_column, coord_dimension, srid, type FROM geometry_columns WHERE f_table_name='main';
geom 4 60000 POINT
SELECT ST_AsEWKT(geom), ST_AsText(geom), ST_NDims(geom) FROM main WHERE gid=1;
SRID=60000;POINT(-4290.34 7248.45 0 -1.79e+308) POINT(-4290.34 7248.45) 4
Для этого выполним:
ALTER TABLE main DROP CONSTRAINT enforce_dims_geom;
UPDATE geometry_columns SET coord_dimension=2 WHERE f_table_name='main';
UPDATE main SET geom=ST_GeomFromEWKT('SRID='||ST_SRID(geom)||';'||ST_AsText(geom))
WHERE ST_NDims(geom)=4;
ALTER TABLE main ADD CONSTRAINT enforce_dims_geom CHECK (st_ndims(geom) = 2);
В результате выполненной процедуры получаю check constraint "enforce_dims_geom" is violated by some row.
ОтветитьУдалитьЧто это и как этого избежать?