插入触发器插入第一行两次后的Mysql

时间:2015-08-23 06:16:11

标签: mysql

我正在使用mysql工作台。我有两个表“new_machine”(父表)和“machine_record”(子表)。我在插入触发器之后使用,将new_machine表中的m_id和m_name插入到machine_record表中的mac_id和mac_name。

m_id是new_machine的主键。 new_machine表中的m_id和m_name是来自machine_record表的mac_id和mac_name的外键。

当我在new_machine中插入数据时,它会在machine_record中填充,但输入的第一条记录会输入两次。

CREATE DEFINER=`root`@`localhost` TRIGGER `system_data`.`new_machine_AFTER_INSERT` AFTER INSERT ON `new_machine` FOR EACH ROW
BEGIN
insert into `system_data`.`machine_record` (mac_id, mac_name)
select m_id, m_name
from `system_data`.`new_machine`;
END

1 个答案:

答案 0 :(得分:0)

您可以直接使用new_machines上插入的值。所以 没有必要用SELECT来获取它。还有你的 SELECT从new_machines中选择所有记录。

CREATE DEFINER=`root`@`localhost` TRIGGER `system_data`.`new_machine_AFTER_INSERT` AFTER INSERT ON `new_machine` FOR EACH ROW
BEGIN
insert into `system_data`.`machine_record` (mac_id, mac_name)
  VALUES (NEW.m_id, NEW.m_name);
END