如何在mysql中使用提交和回滚操作

P粉602998670
发布: 2025-10-31 14:22:02
原创
212人浏览过
在MySQL中,COMMIT和ROLLBACK用于管理事务以确保数据一致性,仅在InnoDB等支持事务的存储引擎中有效;2. 使用START TRANSACTION(或BEGIN)显式开启事务,执行一组操作后通过COMMIT永久保存更改,如转账示例中的两个UPDATE操作;3. 若发生错误或需取消操作,可执行ROLLBACK撤销事务内所有变更,恢复至事务开始前状态;4. MySQL默认开启autocommit模式,每条语句自动提交,手动控制事务需先设置SET autocommit = 0,事务结束后建议恢复autocommit = 1。

如何在mysql中使用提交和回滚操作

在 MySQL 中,提交(COMMIT)和回滚(ROLLBACK)操作用于管理事务,确保数据的一致性和完整性。这些操作只有在使用支持事务的存储引擎(如 InnoDB)时才有效。

开启事务

在执行提交或回滚之前,需要先显式地开始一个事务:

START TRANSACTION;

也可以使用 BEGIN 或 BEGIN WORK,效果相同。

提交操作(COMMIT)

当你完成一组操作并希望永久保存更改时,使用 COMMIT:

COMMIT;

这会将事务中所有已执行的 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 确保两个更新要么都成功,要么都不生效(如果中途出错且回滚)。

回滚操作(ROLLBACK)

如果在事务过程中发生错误或想放弃更改,可以使用 ROLLBACK:

易森网络企业版
易森网络企业版

如果您是新用户,请直接将本程序的所有文件上传在任一文件夹下,Rewrite 目录下放置了伪静态规则和筛选器,可将规则添加进IIS,即可正常使用,不用进行任何设置;(可修改图片等)默认的管理员用户名、密码和验证码都是:yeesen系统默认关闭,请上传后登陆后台点击“核心管理”里操作如下:进入“配置管理”中的&ld

易森网络企业版 0
查看详情 易森网络企业版
ROLLBACK;

它会撤销从 START TRANSACTION 以来的所有操作,恢复到事务开始前的状态。

例如:

START TRANSACTION;
DELETE FROM orders WHERE status = 'failed';
-- 发现误操作
ROLLBACK; -- 删除操作被取消

自动提交模式

MySQL 默认开启自动提交(autocommit = 1),即每条 SQL 语句都会自动提交。

若要手动控制事务,需关闭自动提交:

SET autocommit = 0;

之后的语句将属于同一个事务,直到手动执行 COMMIT 或 ROLLBACK。完成后建议重新开启:

SET autocommit = 1;

基本上就这些。只要记得使用 InnoDB 引擎、显式开始事务,并合理使用 COMMIT 和 ROLLBACK,就能有效控制数据修改过程。

以上就是如何在mysql中使用提交和回滚操作的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号