使用变量插入触发器后的MySQL

时间:2017-02-28 15:48:36

标签: mysql triggers

我已创建此触发器,但我有两个问题。一个它没有主动填充Person表和两个。如果我在Party表中输入多行,则会在访问时出错,Subquery的Result返回多行。 有人知道我的问题吗?

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 ;

1 个答案:

答案 0 :(得分:0)

设置变量时,您对整个表而不是插入的记录进行选择。

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 ;