需要向uuid
类型的字段插入空值,而不指定NOT NULL(非主键)。
当我尝试插入''时,返回:
ERROR: invalid input syntax for uuid: ""
当我尝试插入null时,返回:
ERROR: null value in column "uuid" violates not-null constraint
怎么做呢?
psql数据库9.3.5
SQL语句:
INSERT INTO inv_location (address_id)
VALUES (null)
2条答案
按热度按时间vxbzzdmp1#
在Postgres中,使用
uuid_nil()
函数模拟空uuid(与00000000-0000-0000-0000-000000000000
相同)您可能需要uuid扩展名(不确定),如果需要,请运行以下命令(仅一次):
ergxz8rk2#
如果列定义为
NOT NULL
,则不能输入NULL
值。期间。错误消息中的
uuid
:是列的*名称:
不是
address_id
的***数据类型***。并且该列显然定义为NOT NULL
。您的
INSERT
语句没有将uuid
包含在目标列表中,因此在没有不同的列默认值的情况下,会将NULL赋给它。这表明使用类型名作为标识符是一个坏主意:导致混乱的错误消息(和其它混乱)。