我正在寻找一种使用触发器来更新不同表中的行的方法。 我试图从中获取信息的表是 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
我只想在 Bruker 表中为 PersonID 赋予一个值。 由于 PersonID 是从 Person 到 Bruker 的外键,当我尝试从中获取值时它似乎不存在。当我使用此触发器时,它还会产生一个错误,我无法再将值插入 PersonData。 我想要的结果是,当您将某些内容插入 PersonData 时,您会在 Bruker 中获得一个新行,它与 PersonData 中的新条目具有相同的 PersonID。
最佳答案
您只需通过NEW
引用最近插入的行CREATE TRIGGER Konsistens
AFTER INSERT ON PersonData
FOR EACH ROW
INSERT INTO Bruker (BrukerNavn, Passord, PersonId)
VALUES(NEW.BrukerNavn, NEW.Passord, NEW.PersonId);
关于mysql - 使用插入时使用触发器更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52765069/