Я быстро просмотрел руководство по MySQL, но не нашел точной информации по моему вопросу. Вот мой вопрос: если у меня есть таблица InnoDB A с двумя триггерами, запускаемыми «AFTER INSERT ON A» и «AFTER UPDATE ON A». Более конкретно, например: один триггер определен как:
CREATE TRIGGER test_trigger AFTER INSERT ON A
FOR EACH ROW
BEGIN
INSERT INTO B SELECT * FROM A WHERE A.col1 = NEW.col1
END;
Вы можете игнорировать запрос между BEGIN
И END
, в основном я имею в виду, что этот триггер вставит несколько строк в таблицу B, которая также является таблицей InnoDB.
Теперь, если я запустил транзакцию и затем вставил много строк, скажем: 10K строк, в таблицу A. Если с таблицей A нет триггера, все эти вставки являются атомарными, это точно. Теперь, если таблица A связана с несколькими триггерами вставки / обновления, которые вставляют / обновляют много строк в таблицу B и / или таблицу C и т. Д. Будут ли все эти вставки и / или обновления все еще атомарными?
Я думаю, что он все еще атомарный, но его сложно проверить, и я не могу найти никаких объяснений в Руководстве. Кто-нибудь может это подтвердить?