【发布时间】:2017-03-31 09:57:04
【问题描述】:
练习题是这样的:
实现与 以下外键约束:
ALTER TABLE Sample ADD CONSTRAINT sample_fk
FOREIGN KEY (tissue_type_id)
REFERENCES Tissue_Type(tissue_type_id);
其中tissue_type_id 是Sample 和tissue_type 两个表中的一个属性。
按照格式
Using a trigger to implement a foreign key check constraint
到目前为止,我有:
CREATE OR REPLACE TRIGGER tissue_type_inck
BEFORE INSERT ON SAMPLE
FOR EACH ROW
BEGIN
DECLARE
tissueType tissue_type.tissue_type_id%TYPE;
SELECT TISSUE_TYPE_ID
INTO tissueType
FROM TISSUE_TYPE
WHERE TISSUE_TYPE_ID=:NEW.TISSUE_TYPE_ID;
IF :NEW.TISSUE_TYPE_ID != tissueType THEN
RAISE_APPLICATION_ERROR(-20001,'INVALID TISSUE TYPE');
END IF;
END;
/
我得到编译错误:
警告:触发器创建时出现编译错误。
我哪里出错了?抱歉格式化,谢谢!
【问题讨论】:
-
好的,我真的是 Oracle,我已经更新了我的帖子
-
修复插入触发器后,不要忘记外键也与更新有关(以及 PK 表上的更新和删除)。