INSERT INTO使用单个列的默认值

问题描述 投票:0回答:2

我有一个问题是将数据插入1个表中有1列

名称:user_id

专栏:id

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

INSERT INTO user_id (id) VALUES ()

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

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

INSERT INTO user_id (id) VALUES (4)

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

sql postgresql primary-key sql-insert
2个回答
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;

2
投票

SQL支持default values语句。

所以这将有效:

create table t (id serial primary key);

insert into t 
    default values;

语法在documentation中描述。

© www.soinside.com 2019 - 2024. All rights reserved.