2015-08-23 3 views
0

Я использую рабочий стол mysql. У меня есть две таблицы: «new_machine» (родительская таблица) и «machine_record» (дочерняя таблица). Я использую триггер insert, чтобы вставить m_id и m_name из таблицы new_machine в mac_id и mac_name из таблицы machine_record.Mysql после вставки триггера вставки 1-я строка дважды

m_id является основной ключ для new_machine. m_id и m_name из таблицы new_machine - это внешний ключ для mac_id и mac_name из таблицы machine_record.

Когда я вставляю данные в 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

Можете ли вы опубликовать схему для ур таблиц? – nik

ответ

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 
Смежные вопросы