我正在寻找一种使用触发器更新其他表中的行的方法。 试图从中获取信息的表是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。
答案 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);