如何获取触发器的插入值

时间:2014-08-22 18:36:20

标签: mysql sql triggers

我正在尝试在mysql中创建一个触发器,当桌面上的插入发生时,它将插入到另一个表中。

CREATE TRIGGER addCardForNewUser AFTER INSERT ON swiped.Users
FOR EACH ROW
  BEGIN
      INSERT INTO swiped.Card (userid) VALUES (get value from original insert here);
  END

在insert语句的values部分中,如何从原始插入中获取值以在此处使用?

由于

1 个答案:

答案 0 :(得分:8)

您可以将这些值与new.columnname一起使用。如果列的名称也是userid,那么您可以使用:

CREATE TRIGGER addCardForNewUser AFTER INSERT ON swiped.Users
FOR EACH ROW
  BEGIN
      INSERT INTO swiped.Card (userid) VALUES (new.userid);
  END

来自official documentation

  

在触发器主体中,OLD和NEW关键字使您可以访问   受触发器影响的行中的列。旧的和新的是MySQL   触发器的扩展;它们不区分大小写。

     

在INSERT触发器中,只能使用NEW.col_name