2017-02-28 103 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 ;