为什么在 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;
/