如何在PostgreSQL中自动增加?

17 postgresql

我有一张桌子登录.它有字段排名,用户名和密码.

我希望排名字段值相对于用户名和密码的添加自动递增.

我如何在PostgreSQL中执行此操作?

pyr*_*lus 47

您正在寻找具有数据类型的列Serial.有关数据类型的更多信息,请参阅此页面(下).

例如,您的表定义可能如下所示:

CREATE TABLE yourtable (
    rank SERIAL NOT NULL,
    username VARCHAR(20) NOT NULL,
    password VARCHAR(50) NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

  • SERIAL不是数据类型,只是序列为默认值的整数的别名(请参阅Sanjay Kumar的asnwer) (4认同)

小智 31

可以创建一个序列,它将自动增加rank列的值.

CREATE SEQUENCE rank_id_seq;

CREATE TABLE yourtable (
    rank INTEGER NOT NULL default nextval('rank_id_seq'),
    username VARCHAR(20) NOT NULL,
    password VARCHAR(50) NOT NULL
);

ALTER SEQUENCE rank_id_seq owned by yourtable.rank;
Run Code Online (Sandbox Code Playgroud)