CONSTRAINT会导致错误,但尽管如此,auto_increment会增加

时间:2013-05-16 10:53:52

标签: postgresql

我创建了表:

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

然后添加ID PRIMARY KEY

  ALTER TABLE mytable  ADD COLUMN  id  BIGSERIAL  PRIMARY KEY 

然后,当尝试在name11中插入数据时,CONSTRAINT发生了错误。

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

如何制作:on failed(reason CONSTRAINT)尝试,而不是增加auto_inceremented列?

postgreSQL版本是:9.2

1 个答案:

答案 0 :(得分:2)

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

Gapless Sequences for Primary Keys