我正在使用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
答案 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