我有一张表,其中标识列的定义如下:
id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
首先,我手动插入了几行,包括以id
下列:
INSERT INTO things(id, …)
VALUES (…, …), (…, …), (…, …);
我现在想对其余部分使用自动生成的 ID。
我尝试过:
ALTER TABLE things ALTER COLUMN id RESTART WITH (SELECT max(id) FROM things);
但那不起作用。
我甚至尝试过:
EXECUTE IMMEDIATE 'ALTER TABLE employees ALTER COLUMN id RESTART WITH ' || (SELECT MAX(id)+1 FROM employees);
我知道我可以用一个常数值重新启动,但如果我无法预测插入后的最终 ID,那就没用了。
有没有办法动态重新启动标识列?