为什么在 oracle 中创建自动增量触发器失败?
why is auto-increment trigger creation in oracle failing?
正在使用
Oracle Database 11g 企业版 11.2.0.1.0 版 - 64 位生产
我正在尝试创建一个自动增量触发器。这个解决方案在整个网络上都有讨论,并且几乎被认为是 Oracle 的标准自动增量解决方案。例如 this Stack Overflow article 似乎是确定的。
所以跟随领导,我们有这个:
If you are using Oracle 11.1 or later, you can simplify the trigger a
bit
CREATE OR REPLACE TRIGGER trigger_name
BEFORE INSERT ON table_name
FOR EACH ROW
BEGIN
:new.primary_key_column := name_of_sequence.nextval;
END;
我完全按照这个食谱做的。在我的脚本中,我创建了序列。我创建了 table。
但每次脚本开始创建触发器时,它似乎都进入了一个永远无法摆脱的无限循环。永远不会创建触发器,并且永远不会执行脚本中此下方的任何 SQL 语句。
我已经盯着这个看了一百万次了。我的副本是准确的。我可能做错了什么?
尝试使用尾部斜杠
CREATE OR REPLACE TRIGGER trigger_name
BEFORE INSERT ON table_name
FOR EACH ROW
BEGIN
:new.primary_key_column := name_of_sequence.nextval;
END;
/
正在使用 Oracle Database 11g 企业版 11.2.0.1.0 版 - 64 位生产 我正在尝试创建一个自动增量触发器。这个解决方案在整个网络上都有讨论,并且几乎被认为是 Oracle 的标准自动增量解决方案。例如 this Stack Overflow article 似乎是确定的。
所以跟随领导,我们有这个:
If you are using Oracle 11.1 or later, you can simplify the trigger a bit
CREATE OR REPLACE TRIGGER trigger_name BEFORE INSERT ON table_name FOR EACH ROW BEGIN :new.primary_key_column := name_of_sequence.nextval; END;
我完全按照这个食谱做的。在我的脚本中,我创建了序列。我创建了 table。
但每次脚本开始创建触发器时,它似乎都进入了一个永远无法摆脱的无限循环。永远不会创建触发器,并且永远不会执行脚本中此下方的任何 SQL 语句。
我已经盯着这个看了一百万次了。我的副本是准确的。我可能做错了什么?
尝试使用尾部斜杠
CREATE OR REPLACE TRIGGER trigger_name
BEFORE INSERT ON table_name
FOR EACH ROW
BEGIN
:new.primary_key_column := name_of_sequence.nextval;
END;
/