如何获取触发器的插入值

Bis*_*128 1 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
Run Code Online (Sandbox Code Playgroud)

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

谢谢

VMa*_*Mai 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
Run Code Online (Sandbox Code Playgroud)

官方文档:

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

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