如何在 PostgreSQL 中自动递增? [复制]
Posted
技术标签:
【中文标题】如何在 PostgreSQL 中自动递增? [复制]【英文标题】:How to auto-increment in PostgreSQL? [duplicate] 【发布时间】:2011-03-07 17:32:51 【问题描述】:我有一个表登录。它有字段等级、用户名和密码。
我希望排名字段值在添加用户名和密码时自动递增。
如何在 PostgreSQL 中做到这一点?
【问题讨论】:
顺便说一句,您的问题中有一个小的输入错误。是增量不是增量。如果你改了,更多的人会发现这个问题,加上相关的问题会更合适。 这是关于现有表的,而另一个问题更多是关于 IMO 的新表。所以它不是真正的重复,除非你合并它们。 【参考方案1】:可以创建一个序列,它会自动增加排名列的值。
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;
【讨论】:
【参考方案2】:您正在寻找数据类型为Serial
的列。有关该数据类型的更多信息,请参阅this page(底部)。
例如,您的表定义可能如下所示:
CREATE TABLE yourtable (
rank SERIAL NOT NULL,
username VARCHAR(20) NOT NULL,
password VARCHAR(50) NOT NULL
);
【讨论】:
@Milen A. Radev,感谢您将该锚点添加到我的链接中 :) 自动递增的工作方式如下:insert into yourtable (username, password) values ('moobars', 'boobars');
然后数据库自动递增排名列。
SERIAL 不是数据类型,只是默认为序列的整数的别名(参见 Sanjay Kumar 的 asnwer)【参考方案3】:
create table login (rank serial, username varchar(20), password varchar(20))
串行数据类型是你想要的。
【讨论】:
以上是关于如何在 PostgreSQL 中自动递增? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
在 PostgreSQL 和 Slick 中使用自动递增字段
如何告诉 Entity Framework 我的 ID 列是自动递增的(AspNet Core 2.0 + PostgreSQL)?
如何使用 Hibernate 和 postgresql 为一对多关系实现每个表的自动递增 id 字段
如何拥有自动递增的版本号(Visual Studio)? [复制]