0

我这样创建表:

CREATE  TABLE mytable(
   name CHARACTER VARYING   CONSTRAINT exact_11char CHECK( CHAR_LENGTH(name) = 11 ) ,
   age INTEGER
)

然后添加 idPRIMARY KEY

  ALTER TABLE mytable  ADD COLUMN  id  BIGSERIAL  PRIMARY KEY 

然后,当尝试插入列name数据时,字符长度不是11,从CONSTRAINT.

好的,而且,每次失败的尝试都会增加 id 列序列。

如何做到这一点:失败(原因约束)尝试,而不是增加auto_inceremented列?

postgreSQL 版本是:9.2

4

1 回答 1

2

由于序列操作是非事务性的。因此,PostgreSQL 中没有简单的方法可以在相应的插入失败时停止对序列的递增操作。检查链接以创建无间隙序列。

主键的无缝序列

于 2013-05-16T11:35:23.253 回答