我有一个使用较新的
GENERATED BY DEFAULT AS IDENTITY
功能的主键序列表:
CREATE TABLE test (
id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
data VARCHAR
);
然后我给表格一些值开始,覆盖序列:
INSERT INTO test(id,data) VALUES (3,'something');
INSERT INTO test(id,data) VALUES (6,'something else');
现在如果我再添加几个值,让序列做它的事情:
INSERT INTO test(data) VALUES ('whatever');
INSERT INTO test(data) VALUES ('stuff');
INSERT INTO test(data) VALUES ('etc');
……我得到一个错误:
ORA-00001:违反唯一约束(FIDDLE_CEYTNFUWNIDRFXSPTDWJ.SYS_C0054804)
OK,我理解错误:显然序列从头开始并开始与现有值重叠。
如何在初始
INSERT
之后正确设置顺序?
我有一个小提琴:https://dbfiddle.uk/MtPocwBq