PostgreSQL:如何在uuid中插入空值

lb3vh1jj  于 2023-01-12  发布在  PostgreSQL
关注(0)|答案(2)|浏览(195)

需要向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)
vxbzzdmp

vxbzzdmp1#

在Postgres中,使用uuid_nil()函数模拟空uuid(与00000000-0000-0000-0000-000000000000相同)

INSERT INTO inv_location (address_id)
VALUES (uuid_nil())

您可能需要uuid扩展名(不确定),如果需要,请运行以下命令(仅一次):

create extension if not exists "uuid-ossp";
ergxz8rk

ergxz8rk2#

如果列定义为NOT NULL,则不能输入NULL值。期间。
错误消息中的uuid

ERROR:  null value in column "uuid" violates not-null constraint

是列的*名称

uuid         | character varying(36) | not null

不是address_id的***数据类型***。并且该列显然定义为NOT NULL
您的INSERT语句没有将uuid包含在目标列表中,因此在没有不同的列默认值的情况下,会将NULL赋给它。
这表明使用类型名作为标识符是一个坏主意:导致混乱的错误消息(和其它混乱)。

相关问题