繁体   English   中英

Postgres GENERATED AS IDENTITY 列可空性

[英]Postgres GENERATED AS IDENTITY column nullability

我想创建一个表,其中包含一个具有GENERATED BY DEFAULT AS IDENTITY选项的可为空列,因此我运行以下查询:

CREATE TABLE my_table (
  generated INTEGER NULL GENERATED BY DEFAULT AS IDENTITY,
  data TEXT NOT NULL
);

但是一旦我尝试在表中插入一行, generated的字段是null ,如下所示:

INSERT INTO my_table(generated, data) VALUES(NULL, "some data");

我收到一个空约束违规错误。

但是,如果我更改my_table.generated列属性的顺序:

CREATE TABLE my_table (
  generated INTEGER GENERATED BY DEFAULT AS IDENTITY NULL,
  data TEXT NOT NULL
);

它插入行,生成的字段是NULL ,没有任何问题。 这是案件的预期行为吗?

Postgres 开发人员告诉我这是一个错误,因为身份列不应该为空(请参阅响应下的补丁文件)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM