似乎在Oracle中没有AUTO_INCREMENT的概念,直到包括版本11g.
如何在Oracle 11g中创建一个行为类似自动增量的列?
如何将列设置为使用Oracle SQL Developer自动递增?为什么表单被禁用?

注意:图像显示了Data Modeler,但问题和最佳答案是关于编辑现有数据库.
所以我想创建触发器:
CREATE TRIGGER add_primary_key
AFTER INSERT ON CAJ
FOR EACH ROW
WHEN (ID_CAJ IS NULL)
DECLARE
maximum NUMBER;
BEGIN
maximum := SELECT MAX(ID_CAJ) FROM caj;
if (maximum <> 0)
UPDATE caj
SET ID_CAJ = maximum + 1;
WHERE CAJ_ID = NULL
maximum = maximum +1;
END;
Run Code Online (Sandbox Code Playgroud)
出现此错误:
"invalid NEW or OLD specification"
*Cause: An invalid NEW or OLD specification was given for a column.
*Action: Re-specify the column using the correct NEW or OLD specification.
Run Code Online (Sandbox Code Playgroud)
你们有什么想法吗?