考虑以下几点:自动回滚,如果COMMIT TRANSACTION没有达到
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
从未得到执行?
我假设事务立即回滚并在发生错误时立即丢弃。
我正在使用SQLyog作为客户端。 – Koekiebox 2011-05-25 09:22:58
请参阅http://stackoverflow.com/questions/6121917/automatic-rollback-if-commit-transaction-is-not-reached/32955274#32955274 – 2015-10-13 12:40:14