0

我有使用 JPA 和 Postgresql 的应用程序。我有现有的数据库,我需要向现有表添加一个字段,该字段应该自动递增。我需要提供新记录的值将始终大于以前的记录。我还需要为存在的记录添加值...

我认为 id 字段将满足我的要求,但它不...我有一个由 PostgreSQL 中的序列生成的主键,但值并不总是更大。应用程序被许多并发客户端使用。

4

1 回答 1

1

以下 SQL 将创建一个序列、更改表并使用该序列生成并在新列中设置默认值:

CREATE SEQUENCE myid_seq;
ALTER TABLE mytable ADD COLUMN myid bigint NOT NULL DEFAULT nextval('myid_seq');

因此,当插入新行时,该数字将由数据库设置。(即如果你有很多并发插入没问题)。现有行将使用 的唯一值进行更新myid

如果需要,您可以添加唯一性约束。

于 2013-09-12T10:12:46.870 回答