postgresql 带有单列主键的Postgres INSERT INTO自动增量表

f87krz0w  于 2023-06-05  发布在  PostgreSQL
关注(0)|答案(2)|浏览(157)

我试图自动递增一个表,其中一列是主键,例如:

CREATE TABLE my_table (id PRIMARY KEY NOT NULL);

我通常不会在insert语句中包含主键列,以便自动递增它,但在只有一列的情况下,这似乎是不可能的。以下结果为"syntax error at or near \")\""

INSERT INTO my_table () VALUES ();
yzxexxkh

yzxexxkh1#

将列定义为标识,然后在插入时指定关键字DEFAULT。

create table dumb_id ( id   integer  generated always as identity primary key); 
insert into dumb_id (id) values (default);

注意:默认值周围不能使用引号。Demo here
但这样一张table有什么意义呢?

wnrlj8wa

wnrlj8wa2#

插入Ex时可以设置id = Auto Value的值:

CREATE TABLE my_table (id Serial PRIMARY KEY NOT NULL);
INSERT INTO my_table(id) VALUES( nextval('my_table_id_seq'::regclass));

相关问题