【发布时间】:2021-01-16 11:00:43
【问题描述】:
CREATE TRIGGER Comparer_Prix
BEFORE UPDATE ON ARTICLE
FOR EACH ROW BEGIN
SELECT ARTICLE.PRIXVENTE, ARTICLE.N_PRODUIT, ARTICLE.N_FABRICANT, LIEN_FABRICANT_PRODUIT.PRIXFABRICANT, LIEN_FABRICANT_PRODUIT.N_PRODUIT, LIEN_FABRICANT_PRODUIT.N_FABRICANT
FROM ARTICLE, LIEN_FABRICANT_PRODUIT
WHERE ARTICLE.N_FABRICANT=LIEN_FABRICANT_PRODUIT.N_FABRICANT AND ARTICLE.N_PRODUIT=LIEN_FABRICANT_PRODUIT.N_PRODUIT;
IF (NEW.PRIXVENTE< PRIXFABRICANT) THEN RAISE_APPLICATION_ERROR(-20001, 'Refusé');
END IF;
END;
我正在尝试创建一个对以下规则进行编码的触发器:销售价格必须始终高于制造价格。
这是我得到的错误:
错误(2,3):PL/SQL:SQL 语句被忽略
错误(2,69):PL/SQL:ORA-00904:“LIEN_FABRICANT_PRODUIT”。“PRIXFABRICANT”:标识符无效
错误 (2.92):PLS-00302:必须声明组件“PRIXFABRICANT”。
错误 (5,3):PL/SQL:语句被忽略
错误(5,10):PLS-00201:必须声明标识符“NEW.PRIXVENTE”。
【问题讨论】: