【发布时间】:2020-11-01 07:04:34
【问题描述】:
Postgres 12:
CREATE TABLE l_table (
id INT generated always as identity,
w_id int NOT null references w_table(id),
primary key (w_id, id)
)PARTITION BY LIST (w_id);
CREATE table l1 PARTITION OF l_table FOR VALUES IN (1);
insert into l1 (w_id) values (1);
我明白了:
ERROR: null value in column "id" violates not-null constraint
如果我将 INT generated always as identity 替换为 SERIAL 它有效。这很奇怪,因为在另一个表中生成的标识总是与 null 一起使用。使用default 作为值也不起作用。
GAAI应该是替代SERIAL的SQL标准方式,甚至是建议的方式。我在这里错过了什么?
谢谢。
【问题讨论】:
-
改用
insert into l_table (w_id) values (1);- 插入分区似乎不会默认标识列 -
看起来可行。请回答这个问题,我会检查它。谢谢!
标签: postgresql identity-column postgresql-12 table-partitioning