小编典典

如何获取触发器的插入值

sql

我正在尝试在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

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

谢谢


阅读 162

收藏
2021-04-22

共1个答案

小编典典

您可以将这些值用于new.columnname。如果列名也是userid如此,则可以使用:

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

官方文档中

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

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

2021-04-22