Postgresql 约束会导致错误,但尽管如此,auto_increment会递增

Postgresql 约束会导致错误,但尽管如此,auto_increment会递增,postgresql,Postgresql,我创建表格是为了: CREATE TABLE mytable( name CHARACTER VARYING CONSTRAINT exact_11char CHECK( CHAR_LENGTH(name) = 11 ) , age INTEGER ) 然后添加id主键列 ALTER TABLE mytable ADD COLUMN id BIGSERIAL PRIMARY KEY 然后,当尝试在名称数据列中插入字符长度不是11的数据时,发生了来自约束的错误

我创建表格是为了:

CREATE  TABLE mytable(
   name CHARACTER VARYING   CONSTRAINT exact_11char CHECK( CHAR_LENGTH(name) = 11 ) ,
   age INTEGER
)
然后添加id
主键

  ALTER TABLE mytable  ADD COLUMN  id  BIGSERIAL  PRIMARY KEY 
然后,当尝试在
名称
数据列中插入字符长度不是
11
的数据时,发生了来自
约束
的错误

好的,但同时,id列序列在每次失败的尝试中都会增加

如何执行:在失败的(原因约束)尝试上,而不是递增
自动递增


postgreSQL版本为:
9.2

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


搜索@Clodoaldo---谢谢。你为什么想要这个?生成PK值没有任何意义,因此生成什么值根本不重要。省去你自己很多麻烦,忽略这一点。