Примите во внимание следующее:
START TRANSACTION;
BEGIN;
INSERT INTO prp_property1 (module_name,environment_name,NAME,VALUE) VALUES ('','production','','300000');
/** Assume there is syntax error SQL here...**/
Blah blah blah
DELETE FROM prp_property1 WHERE environment_name = 'production';
COMMIT TRANSACTION;
Вопрос:
Я заметил, что транзакция автоматически откатывается, и попытка вставки записи завершается неудачей.
Если я не предоставляю обработчик ошибок или проверку ошибок вместе с ROLLBACK TRANSACTION
, как указано выше, безопасно ли это, как кажется, выполнять работу в примере, подобном приведенному выше, поскольку COMMIT TRANSACTION
никогда не выполняется? *
Я предполагаю, что транзакция откатывается немедленно и отбрасывается, как только возникает ошибка.