使用insert时使用触发器更新数据库

xqkwcwgp  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(346)

我正在寻找一种使用触发器更新不同表中的行的方法。我试图从中获取信息的表是ai(auto increment),也是该表的主键。
我的问题是我找不到一个简单的方法。
我的代码:

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之间的外键,所以当我试图从中获取值时,它似乎不存在。当我使用这个触发器时,它也会创建一个bug,我不能再将值插入persondata。我期望的结果是,当你在persondata中插入一些东西时,你会在bruker中得到一个新行,它与persondata中的新条目具有相同的personid。

7rfyedvj

7rfyedvj1#

您只需按new引用最近插入的行

CREATE TRIGGER Konsistens 
 AFTER INSERT ON PersonData
FOR EACH ROW
 INSERT INTO Bruker (BrukerNavn, Passord, PersonId)
 VALUES(NEW.BrukerNavn, NEW.Passord, NEW.PersonId);

相关问题