在Oracle中,如果我创建一个带有ID字段的表,并为该字段创建一个序列对象,以自动递增1并从1开始。
IE:ID:1,2,3,4,5,6等......
然后对于表的第一个记录,我手动执行插入,IE:
insert into table(ID, etc...) values (1, etc...)
如果序列对象用于下一次插入,序列对象是否会自动跳转到下一个可用ID(2)?
答案 0 :(得分:0)
迁移数据时经常会发现此要求。您迁移数据时没有生成序列生成的文档编号。迁移后,您使用序列生成文档/行号。为避免冲突,请使用序列的数字范围,该数字范围与迁移编号范围不同。
答案 1 :(得分:0)
您可以创建一个触发器来自动增加序列值。
CREATE OR REPLACE TRIGGER <tgr_name>
BEFORE INSERT ON <table>
FOR EACH ROW
BEGIN
SELECT seq_name.NEXTVAL
INTO :new.id
FROM dual;
END;
/