INSERT INTO 并使用单列的默认值

Blu*_*héo 2 sql postgresql primary-key sql-insert

我在将数据插入 1 个包含 1 列的表时遇到问题

名称:用户 ID

列: ID

我尝试使用以下查询在此列中添加 1 行:

INSERT INTO user_id (id) VALUES ()
Run Code Online (Sandbox Code Playgroud)

问题是上面无效,我希望id取最后一个值id +1

这不是语法问题,因为此查询有效:

INSERT INTO user_id (id) VALUES (4)
Run Code Online (Sandbox Code Playgroud)

所以,我真的不知道如何解决这个问题。

小智 6

假设id列定义为serial或者identity您可以指定列列表并将列值设置为default

insert into user_id (id) values (default);
Run Code Online (Sandbox Code Playgroud)

如果您有更多列,这也适用,例如:

insert into users (id, firstname, lastname) 
values (default, 'Arthur', 'Dent');
Run Code Online (Sandbox Code Playgroud)

或者您可以完全省略列列表并请求所有列的默认值:

insert into user_id default values;
Run Code Online (Sandbox Code Playgroud)