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

时间:2013-11-18 17:57:23

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

这可能吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下内容:

/* 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