MySQL事务通过COMMIT和ROLLBACK确保数据一致性,需关闭autocommit并使用START TRANSACTION开启事务,执行SQL后提交或回滚,仅InnoDB等支持事务的引擎可用。

在MySQL中,事务是一组SQL操作的集合,这些操作要么全部成功执行,要么全部不执行。通过事务的提交(COMMIT)和回滚(ROLLBACK),可以确保数据的一致性和完整性。以下是关于MySQL事务的基本使用方法。
开启事务
在执行事务操作前,需要先手动关闭自动提交模式,然后显式地开启一个事务。
SET autocommit = 0;:关闭自动提交,这样后续的SQL语句不会立即生效。START TRANSACTION; 或 BEGIN;:显式开始一个事务块。
执行SQL操作
在事务中可以执行多条DML语句(如INSERT、UPDATE、DELETE),这些操作会暂时保存在事务缓存中,不会立即写入数据库。
例如:
START TRANSACTION;UPDATE accounts SET balance = balance - 100 WHERE user_id = 1;UPDATE accounts SET balance = balance + 100 WHERE user_id = 2;
提交事务
如果所有操作都执行成功,可以使用COMMIT命令将更改永久保存到数据库。
COMMIT;:提交当前事务,所有修改生效且不可撤销。
例如:
COMMIT;
回滚事务
如果在事务执行过程中出现错误或需要取消操作,可以使用ROLLBACK命令撤销所有未提交的更改。
Visual Studio IntelliCode
微软VS平台的 AI 辅助开发工具
46 查看详情
ROLLBACK;:回滚当前事务,恢复到事务开始前的状态。
例如:
ROLLBACK;
比如上面转账的例子,如果第二个账户更新失败,执行ROLLBACK后,第一个账户扣款的操作也会被撤销,保证数据一致性。
自动提交模式说明
MySQL默认是开启自动提交(autocommit = 1)的,即每条SQL语句都会自动提交。在需要事务控制时,必须关闭自动提交,否则无法实现回滚。
注意:只有使用支持事务的存储引擎(如InnoDB)才能使用事务功能。MyISAM不支持事务。
基本上就这些。掌握COMMIT和ROLLBACK的使用,结合START TRANSACTION,就能有效管理数据操作的完整性。实际开发中建议用程序逻辑控制事务边界,避免长时间持有事务导致锁争用。
以上就是mysql如何使用事务提交和回滚_mysql事务提交回滚操作的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/875905.html
微信扫一扫
支付宝扫一扫