2016-11-17 33 views
1

實踐問題的使用觸發器是這樣的:到位外鍵

貫徹執行相同功能的 以下外鍵約束的觸發器:

ALTER TABLE Sample ADD CONSTRAINT sample_fk 
FOREIGN KEY (tissue_type_id) 
    REFERENCES Tissue_Type(tissue_type_id); 

tissue_type_id是一個屬性在Sampletissue_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; 
/

我得到的編譯錯誤:

Warning: Trigger created with compilation errors.

我要去哪裏錯了?對格式化和感謝抱歉!

+0

好吧,我真的是在Oracle上,我做了一個更新我的帖子 – Blag

+1

後,你修爲插入扳機,不要忘了外鍵與更新(以及PK表中的更新和刪除)有關。 – mathguy

回答

0
BEGIN 
DECLARE 
    tissueType tissue_type.tissue_type_id%TYPE; 

它是在其他方式:

DECLARE 
    tissueType tissue_type.tissue_type_id%TYPE; 
BEGIN