mysql - 使用插入时使用触发器更新数据库

标签 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

我只想在 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/

相关文章:

python - 一次两个选择查询python

Mysql统计外键的不同id

c# - 在 SQL 表中创建新行时如何自动获取日期?

MySQL选择行之间的行

database - CouchDB和Lotus Notes有什么区别?

mysql - 按日期获取每个类别过滤器的最后一条记录

mysql - 将字符串与一个之前有空格而另一个没有空格的字符串进行比较

sql where 子句中的情况

javascript - Sequelize 。如何在创建中使用不同的参数值

php - 从表单将数据发送到 SQL 数据库时出错