我有表1其中id为autoincrement.表2具有与表1的外键关系,其中我需要将表1中生成的值插入表2中
-- Trigger DDL Statements
DELIMITER $$
USE `baemer_emr`$$
CREATE TRIGGER `baemer_emr`.`after_insert_log` AFTER INSERT ON `baemer_emr`.`table1`
FOR EACH ROW
BEGIN
INSERT INTO table2 VALUES (last_insert_id() , something);
END$$
Run Code Online (Sandbox Code Playgroud)
它正在工作,但正在显示之前的数字.例如
插入表1,id = 15.在表2中返回14.任何想法?
在触发器中,您有2个虚拟表,称为NEW和,OLD
您可以使用这些虚拟表来获取新插入的值.
该OLD虚拟表只适用于UPDATE和DELETE明显的触发.
并且DELETE触发器没有NEW表.
-- Trigger DDL Statements
DELIMITER $$
USE `baemer_emr`$$
CREATE TRIGGER after_insert_log AFTER INSERT ON table1
FOR EACH ROW
BEGIN
INSERT INTO table2 VALUES (NEW.id, something);
END$$
Run Code Online (Sandbox Code Playgroud)
注意NEW.id _(假设id是一个auto_increment字段)_还没有设置在before insert触发器中,只是要避免的一个小陷阱.
| 归档时间: |
|
| 查看次数: |
1849 次 |
| 最近记录: |