Триггер mysql вставляет в таблицу B вставку таблицы A, которая затем имеет еще один триггер вставки в таблицу B для вставки в таблицу C - PullRequest
0 голосов
/ 15 мая 2019

У меня есть три таблицы: A, B, C
A-B = 1: отношение М
B-C = отношение 1: 1

Я создал триггер для таблицы A следующим образом:

DELIMITER $$
CREATE TRIGGER after_tableA_insert
AFTER INSERT
ON tableA
FOR EACH ROW
BEGIN
  -- Insert multiple records
  -- Insert into table B (id, foo) values (NULL,v)
END$$
DELIMITER ;

Существует также триггер в таблице B после вставки как таковой:

DELIMITER $$
CREATE TRIGGER after_tableB_insert
AFTER INSERT
ON tableB
FOR EACH ROW
BEGIN
  -- insert into tableC values (NEW.id, NEW.foo)
END$$
DELIMITER ;

Одна вставка в таблицу A вызовет несколько вставок в таблицу B. Одна вставка в таблицу B инициирует одну вставку в таблицу C.

Мой вопрос, который я предполагаю, состоит в том, что было бы разумно, чтобы эти триггеры "пульсации" были реализованы таким образом, потому что я понимаю, что значения могут быть вставлены в таблицу оптом, а не по одному. Одиночные вставки будут иметь смысл, однако я не уверен, возможно ли это в большем масштабе.

Кроме того, как ядро ​​базы данных выполняет эти действия, если записи вставляются навалом по сравнению с простой вставкой одной записи? есть ли разница?

...