谷歌搜索告诉我试试这个:
insert into Plan default values;
但我得到了:
null value in column "id" violates not-null constraint
或者这个:
insert into Plan (id) values (null);
但是我得到了同样的东西。
示例适用于SQL:PostgreSQL有什么不同的东西吗?
表格结构:
create table Plan (
id int4 not null,
primary key (id)
);
答案 0 :(得分:1)
您的列不接受NULL值(已定义not null
),您也没有定义默认值。因此,必须提供integer
值:
insert into plan (id) values (1235); -- any integer value
很可能你真的想要一个 serial
列,它从序列中提取默认值:
你的桌子看起来像这样:
CREATE TABLE plan (plan_id serial PRIMARY KEY);
INSERT
可能是:
INSERT INTO plan DEFAULT VALUES;
答案 1 :(得分:1)
您应该创建sequence
并将默认值设置为nextval
,如下所示:
create sequence plan_sequence
start 100
increment 1
;
create table plan (
id int4 not null default nextval('plan_sequence'),
primary key (id)
);
序列提供自动递增值。它用于主键等。