2017-02-28 98 views
0

我創建了這個觸發器,但我有兩個問題。一個它不積極地填充Person表和兩個。如果我在Party表中輸入了多行,則會出現訪問錯誤,子查詢結果返回多行。 有人知道我的問題嗎?插入後觸發變量的MySQL後

DELIMITER $$ 
Create TRIGGER Trigger1 

    AFTER 
    INSERT 
    ON Party 
    FOR EACH ROW 
    BEGIN 

declare partytypeid int; 
declare partyid int; 

set @partyid:= (select partyid from party); 
set @partytypeid:= (select partytypeid from party); 

     IF partytypeid = 1 
     THEN INSERT INTO Person 
     (PartyId) VALUES (PartyId); 
     END IF;  

    END$$ 
    delimiter ; 

回答

0

當你設置你的變量時,你正在對整個表進行select而不是插入的記錄。

DELIMITER $$ 

Create TRIGGER Trigger1 

AFTER INSERT ON Party FOR EACH ROW 
BEGIN 
    declare partytypeid int; 
    declare partyid int; 

    set @partyid:= new.partyid; 
    set @partytypeid:= new.partytypeid; 
    IF partytypeid = 1 THEN 
     INSERT INTO Person 
     (PartyId) VALUES (PartyId); 
    END IF;  

END$$ 
delimiter ;