簡體   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