使用 Oracle Database 11g企业版11.2.0.1.0版 - 64位生产 我正在尝试创建自动增量的触发器。该解决方案在整个Web上进行了讨论,并且几乎被认为是Oracle的标准自动增量解决方案。例如,this Stack Overflow article似乎是确定的。
因此,在领导之后,我们有了这个:
如果您使用的是Oracle 11.1或更高版本,则可以简化触发器a 位
CREATE OR REPLACE TRIGGER trigger_name BEFORE INSERT ON table_name FOR EACH ROW BEGIN :new.primary_key_column := name_of_sequence.nextval; END;
我完全按照这个食谱。在我的脚本中,我创建了序列。我创建了表。
但是每次脚本创建触发器时,它似乎都会进入一个永无止境的无限循环。永远不会创建触发器,脚本中的任何SQL语句都不会被执行。
我已经盯着这一百万次了。我的副本是准确的。我能做错什么?
答案 0 :(得分:3)
尝试使用尾部斜杠
CREATE OR REPLACE TRIGGER trigger_name
BEFORE INSERT ON table_name
FOR EACH ROW
BEGIN
:new.primary_key_column := name_of_sequence.nextval;
END;
/