在postgresql中生成自动ID

时间:2016-03-03 04:18:46

标签: sql postgresql rdbms

用户表:

    ID  Name
    1   usr1
    2   usr2
    3   usr3

在上表中,ID是主键。我的要求是在将数据插入表格时,我只想指定 名称如INSERT INTO user VALUES('usr4')。执行查询后,有没有办法自动为'usr4'创建ID?

我试过串行数据类型。为此,我们还必须指定关键字默认值INSERT INTO user VALUES(default,'usr4')。那么,有没有办法像INSERT INTO user VALUES('usr4')那样做。注意:ID应该是唯一的。

1 个答案:

答案 0 :(得分:2)

使用内置数据类型serialbigserial

create table users (
  id serial primary key,
  name varchar(100) not null unique -- ?
);

命名列;省略串行或bigserial列的名称。

insert into users (name) values ('usr4');

一般规则是您必须为INSERT语句中使用的每个列提供一个值。如果未指定列名,则必须为每列提供一个值,包括“Id”,并且必须按列中显示的顺序提供它们。

如果指定列名,则可以省略具有可以为空的默认值和列的列,并且可以按任何顺序放置列名。值的顺序必须与您指定的列名的顺序相匹配。