我可以通过设置序列并将表列默认值设置为该序列来创建自动增量,但我仍然可以手动输入不是该序列的值。如何在插入时对此强制执行约束?是否只使用触发器?
答案 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;
一切顺利