【发布时间】:2016-06-10 09:56:02
【问题描述】:
我必须编写一个触发器,它会在添加消息条目后更新它,如果添加的消息文本是 20 字或更长,则更新。我不断收到 ORA-06512 和 ORA-04088 错误,这显然是当您激活了 INSERT 触发器时,您的触发器正在导致另一个 INSERT,从而形成无限循环。
但我的触发器中有一个更新,它应该只由 INSERT 触发。我似乎找不到代码逻辑中的缺陷。有没有人写这个?
CREATE OR REPLACE TRIGGER Length
AFTER INSERT ON Messages
FOR EACH ROW
WHEN (length(new.msg_text) - length(replace(new.msg_text, ' ', '')) >= 20)
BEGIN
UPDATE Messages
set Messages.length = 1
WHERE Messages.msgID = :new.msgID;
END;
/
【问题讨论】:
标签: sql oracle triggers insert sql-update