Триггер для вставки 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 ;

Объяснение кода листинга программы

  1. Создается таблица aaa с полями id, a1, a2 и PRIMARY KEY
  2. Создается таблица bbb с полями id, id_a1, a3, a4, sss, time и PRIMARY KEY
  3. Устанавливается триггер INSERT_aaa который будет добавлять записи в таблицу bbb после вставки каждой записи в таблицу aaa
  4. Устанавливается триггер UPDATE_aaa2 который будет добавлять записи в таблицу bbb после обновления каждой записи в таблице aaa
  5. Устанавливается триггер DELETE_aaa3 который будет добавлять записи в таблицу bbb после удаления каждой записи в таблице aaa

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5
Похожие ответы