使用单列的默认值插入INTO

时间:2018-08-31 09:56:54

标签: sql postgresql primary-key sql-insert

我在将数据插入1列1列的表中遇到问题

名称:user_id

列:id

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

INSERT INTO user_id (id) VALUES ()

问题是上面的无效,我想让id取最后一个值id +1

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

INSERT INTO user_id (id) VALUES (4)

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

2 个答案:

答案 0 :(得分:2)

SQL支持default values语句。

这将起作用:

create table t (id serial primary key);

insert into t 
    default values;

documentation中描述了语法。

答案 1 :(得分:1)

假设id列定义为serialidentity,则可以指定列列表并将列值设置为default

insert into user_id (id) values (default);

如果您有更多列,例如:

insert into users (id, firstname, lastname) 
values (default, 'Arthur', 'Dent');

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

insert into user_id default values;