我正在使用 SQL 工具为 Oracle 创建一个行级触发器。我将附上我正在处理的 ERD 的图片。我还将包括我的说明,粘贴我尝试过的代码以及我遇到的错误。
请求描述:在USED表上创建一个名为“TRG_USED_COST”的行级触发器。触发器应在表中插入新行之前执行。插入命令将为要添加到表中的“CHEM_NUM”、“JOB_NUM”和“USED_QTY”提供一个值。使用插入中使用的 CHEM_NUM,从 CHEMICAL 表中检索“CHEM_UNIT_COST”。将化学品单位成本乘以该行中使用的化学品数量,并将该值包含为插入行的“USED_CHARGE”。
我的代码:
CREATE OR REPLACE TRIGGER TRG_USED_COST
BEFORE INSERT OR UPDATE OF CHEM_NUM,JOB_NUM,USED_QTY ON USED
FOR EACH ROW
BEGIN
UPDATE USED
SET USED_CHARGE = CHEM_UNIT_COST * USED_QTY
WHERE CHEM_NUM IS NOT NULL;
END;
/
输入代码后,我收到错误:PL/SQL: ORA-00904: "CHEM_UNIT_COST": invalid identifier
我知道我收到了错误,因为我没有引用“CHEM_UNIT_COST”所在的 CHEMICAL 表……但我不知道如何引用它。