如何在postgres中强制执行自动增量?

时间:2016-06-19 17:34:17

标签: sql postgresql constraints auto-increment

我可以通过设置序列并将表列默认值设置为该序列来创建自动增量,但我仍然可以手动输入不是该序列的值。如何在插入时对此强制执行约束?是否只使用触发器?

1 个答案:

答案 0 :(得分:0)

这有帮助吗?

我测试了这个,你可以插入主键,只要它的UNIQUE。如果Null,则自动序列启动( tablename_colname_seq )并插入UNIQUE主键。

-- Table: test
CREATE SEQUENCE tablename_colname_seq;


CREATE TABLE foo( primary_id int not null UNIQUE default  nextval('tablename_colname_seq'),

a_nother int ) 
WITH ( OIDS=FALSE );

ALTER TABLE foo   postgres的所有者;

- 测试数据

insert into foo (primary_id) values(14)
insert into foo (a_nother) values(13);
select * from foo;

一切顺利