mysql - 如何创建一个触发器,将新行添加到另一个表,并引用添加到当前表的新行?

标签 mysql triggers

我有这样的关系(A):

ID | B_ID

这种关系(B):

ID | FOO

我想向 A 添加一个触发器,在将新行插入 A 时(B_ID 始终设置为 NULL),在 B 中添加一行,将 FOO 设置为 NULL 并设置 B_ID A 新行中的 > 属性来引用新添加的 B 行。

示例:

插入后立即

A:

1 | NULL

触发操作后:

A:

1 | 555

B:

555 | NULL

这可能吗?

最佳答案

您可以尝试如下操作:

/* Trigger structure for table `a` */

DELIMITER $$

CREATE TRIGGER `trg_a_bi` BEFORE INSERT ON `a`
FOR EACH ROW
BEGIN
    INSERT INTO `b` (`foo`) VALUES (NULL);
    SET NEW.`b_id` := LAST_INSERT_ID();
END$$

DELIMITER ;

这里是SQL Fiddle .

关于mysql - 如何创建一个触发器,将新行添加到另一个表,并引用添加到当前表的新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20054485/

相关文章:

MySQL 完全连接?

php - 获取用户时间和服务器时间之间的时差?

android - 使用 JDBC 驱动程序直接从 android 连接到数据库与使用 Webservice 之间有什么区别

azure - 按计划仅运行一项构建管道任务

sql-server - SQL Server "AFTER INSERT"触发器看不到刚刚插入的行

mysql 在 linestring mbrcontains 中使用 lat long 列

sql-server-2005 - 如何在SQL Server触发器中获取更新的列的列表?

sql - 防止触发器相互递归执行?

entity-framework - OptimisticConcurrencyException-SQL 2008 R2而不是使用 Entity Framework 的插入触发器

php - 如何从将表中的外键与另一个表中的主键相匹配的两个表中进行查询