我想为一个几何列设置一个默认值,表示它为 null 或空。例如,一个字符串最初被初始化为 null 或 ""以指示它是 void/empty。什么相当于几何体的 null/empty。
几何列的值是多少表示它是空的。我尝试了 0
和 ""
但不允许将它们插入几何类型的列中
最佳答案
添加 DEFAULT
到具有空几何的几何列,例如对于 POINT
:
CREATE TABLE t (
id int,
geom geometry(point,4326) NOT NULL DEFAULT 'POINT EMPTY'
);
它也适用于其他几何类型(及其 Z
和 M
扩展),例如:
SELECT
'POINT EMPTY'::geometry,
'POLYGON EMPTY'::geometry,
'LINESTRING EMPTY'::geometry,
'MULTILINESTRING EMPTY'::geometry,
'MULTIPOLYGON EMPTY'::geometry,
'MULTIPOINT EMPTY'::geometry,
'POLYHEDRALSURFACE EMPTY'::geometry,
'TRIANGLE EMPTY'::geometry,
'TIN EMPTY'::geometry,
'GEOMETRYCOLLECTION EMPTY'::geometry;
-[ RECORD 1 ]----------------------------------------
geometry | 0101000000000000000000F87F000000000000F87F
geometry | 010300000000000000
geometry | 010200000000000000
geometry | 010500000000000000
geometry | 010600000000000000
geometry | 010400000000000000
geometry | 010F00000000000000
geometry | 011100000000000000
geometry | 011000000000000000
geometry | 010700000000000000
演示: db<>fiddle
关于python - 初始化几何类型的空列的合适值是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69940446/