我创建了表:
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
然后,当尝试在name
列11
中插入数据时,CONSTRAINT
发生了错误。
好的,但是,每次失败的尝试都会增加id列序列。
如何制作:on failed(reason CONSTRAINT)尝试,而不是增加auto_inceremented
列?
postgreSQL版本是:9.2
答案 0 :(得分:2)
由于序列操作是非事务性的。因此,当相应的插入失败时,PostgreSQL中没有简单的方法来停止序列上的增量操作。 检查链接以创建无间隙序列。