Триггер для вставки id в с двух разных таблиц - MySQL
Формулировка задачи:
Здравствуйте, у меня есть таблица clients и там есть поле client_id (primary key , AI) и таблица movies есть поле movie_id (primary key , AI) . И я хочу при вставке новых id в этих таблицах, чтобы эти id записывались в 3 таблицу "client_movies" с полями clientId | movie_id . Возможно ли написать такой триггер который бы автоматом записывал значение с 2 разных таблиц в эту 3? Я что то слышал об insert..select , и какой примерно будет написан запрос? Спасибо
Решение задачи: «Триггер для вставки id в с двух разных таблиц»
textual
Листинг программы
CREATE TABLE `aaa` ( `id` int(10) NOT NULL AUTO_INCREMENT, `a1` char(15) COLLATE utf8_bin NOT NULL, `a2` int(5) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; CREATE TABLE `bbb` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `id_a1` int(10) NOT NULL, `a3` char(15) COLLATE utf8_bin NOT NULL, `a4` int(5) NOT NULL, `sss` varchar(30) COLLATE utf8_bin NOT NULL, `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=67 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; DELIMITER ;; CREATE TRIGGER `INSERT_aaa` AFTER INSERT ON `aaa` FOR EACH ROW BEGIN INSERT INTO bbb Set sss = 'Добавл', id_a1 = NEW.id, a3 = New.a1, a4 = New.a2; END;; DELIMITER ; DELIMITER ;; CREATE TRIGGER `UPDATE_aaa2` AFTER UPDATE ON `aaa` FOR EACH ROW BEGIN INSERT INTO bbb Set sss = 'Изме', id_a1 = NEW.id, a3 = New.a1, a4 = New.a2; END;; DELIMITER ; DELIMITER ;; CREATE TRIGGER `DELETE_aaa3` AFTER DELETE ON `aaa` FOR EACH ROW BEGIN INSERT INTO bbb Set sss = 'Уд', id_a1 = OLD.id, a3 = OLD.a1, a4 = OLD.a2; END;; DELIMITER ;
Объяснение кода листинга программы
- Создается таблица
aaa
с полямиid
,a1
,a2
иPRIMARY KEY
- Создается таблица
bbb
с полямиid
,id_a1
,a3
,a4
,sss
,time
иPRIMARY KEY
- Устанавливается триггер
INSERT_aaa
который будет добавлять записи в таблицуbbb
после вставки каждой записи в таблицуaaa
- Устанавливается триггер
UPDATE_aaa2
который будет добавлять записи в таблицуbbb
после обновления каждой записи в таблицеaaa
- Устанавливается триггер
DELETE_aaa3
который будет добавлять записи в таблицуbbb
после удаления каждой записи в таблицеaaa
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д