Триггер MySQL с вставкой или обновлением транзакции

Я использую mysql db и java, поэтому в моем приложении мне нужно использовать триггер, но мне нужно сохранить его при вставке или обновлении. при вставке новой записи в таблицу A триггер выполнит работу по вставке некоторой информации в другую таблицу B. Также при обновлении записей в таблице A триггер будет обновлять записи для таблицы B.

если транзакция во время обновления или вставки откатывается, отменяет ли это любые изменения, сделанные триггером??!!


person Motasem    schedule 11.12.2012    source источник


Ответы (1)


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

person Eric Petroelje    schedule 11.12.2012
comment
и как сделать это манипулирование, чтобы предотвратить откат работы, выполненной триггером? - person Matija Nalis; 30.04.2019
comment
@MatijaNalis - хороший вопрос, на самом деле похоже, что вы не можете выполнять вложенные транзакции в MySQL, но вы можете сделать что-то подобное с точками сохранения, если хотите. Мне более любопытно, почему вы хотели бы этого - варианты использования для этого довольно ограничены в моем опыте. - person Eric Petroelje; 02.05.2019
comment
Я пытаюсь вести некоторые журналы о попытках (как успешных, так и неудачных) транзакций. Не имея возможности сохранять данные при откате, я мог регистрировать только успешные транзакции. - person Matija Nalis; 03.05.2019
comment
@MatijaNalis - Да, это единственный вариант использования, для которого мне когда-либо понадобилась эта функция. В моем случае я использовал C# и DTC на сервере MsSQL, но похоже, что эти функции могут быть недоступны в MySQL. - person Eric Petroelje; 03.05.2019