使用插入操作时使用触发器更新数据库

时间:2018-10-11 16:40:17

标签: mysql sql database triggers

我正在寻找一种使用触发器更新其他表中的行的方法。 试图从中获取信息的表是AI(自动增量),也是该表的主键。

我的问题是我找不到简单的方法。

我的代码:

DROP TRIGGER IF EXISTS Konsistens;
DELIMITER $$
 CREATE TRIGGER Konsistens AFTER INSERT ON PersonData
 FOR EACH ROW
BEGIN
 INSERT INTO Bruker(BrukerNavn, Passord, PersonId)
 VALUES('Bruker1', 'pw1', LAST_INSERT_ID(PersonData.PersonID));
END

我想要的是为PersonID在Bruker表中提供一个值。 由于PersonID是从Person到Bruker的外键,因此当我尝试从中获取值时似乎不存在。当我使用此触发器时,它还会创建一个错误,使我无法再将值插入PersonData中。 我希望得到的结果是,当您向PersonData中插入某些内容时,会在Bruker中获得新行,该行具有与PersonData中的新条目相同的PersonID。

1 个答案:

答案 0 :(得分:0)

您只需按 NEW

引用最近插入的行
CREATE TRIGGER Konsistens 
 AFTER INSERT ON PersonData
FOR EACH ROW
 INSERT INTO Bruker (BrukerNavn, Passord, PersonId)
 VALUES(NEW.BrukerNavn, NEW.Passord, NEW.PersonId);