当尝试在 Oracle 中创建一个触发器,在表BGT_PAND_MUTATIE
中将AFGEVINKT
从 0 更改为 1 后更新表PAND
时:
CREATE OR REPLACE TRIGGER AU_BGT_PAND_MUTATIE
AFTER UPDATE OF AFGEVINKT ON BGT_PAND_MUTATIE
FOR EACH ROW
BEGIN
UPDATE PAND
SET VRIJNUMMER1 = NULL
WHERE PAND.ID =: BGT_PAND_MUTATIE.ID;
END;
我收到以下消息:
Error(5,20): PLS-00049: bad bind variable 'BGT_PAND_MUTATIE.ID'
表BGT_PAND_MUTATIE
具有列ID
和AFGEVINKT
列。表PAND
具有列ID
和VRIJNUMMER1
列。
我该怎么做才能完成这项工作?
您目前有:
WHERE PAND.ID =: BGT_PAND_MUTATIE.ID;
=:
中的冒号使以下标识符被视为绑定变量。不过,您不会直接引用该表;您可以使用NEW
psdeudorecord:
WHERE PAND.ID = :NEW.ID;