我正在尝试触发一个触发器,该触发器在更新或插入后将owner_notif_sta设置为 null,如果owner_id为 null,则owner_notif_sta。owner_id和owner_notif_sta都来自同一个表。
触发器:
CREATE TRIGGER check_owner
AFTER UPDATE OF owner_notif_sta ON risk
REFERENCING OLD AS EXISTING
FOR EACH ROW MODE DB2SQL
UPDATE risk SET owner_notif_sta = NULL
WHERE owner_id IS NULL;
我尝试触发的更新:
UPDATE RISK SET owner_notif_sta = 'helloo' WHERE risk_id = 'ICT123';
并且owner_id为空(触发更新时未填充)
并且我收到以下错误:错误 54038:超出了嵌套触发器的最大深度。
提前致谢
稍微更改 UPDATE
语句以排除已经owner_notif_sta
为 null 的行怎么样:
CREATE TRIGGER check_owner
AFTER UPDATE OF owner_notif_sta ON risk
REFERENCING OLD AS EXISTING
FOR EACH ROW MODE DB2SQL
UPDATE risk
SET owner_notif_sta = NULL
WHERE owner_id IS NULL
AND owner_notif_sta IS NOT NULL;