文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL中事务控制对的示例分析

2024-04-02 19:55

关注

这篇文章主要介绍MySQL中事务控制对的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

什么是事务控制

事务是指作为一个逻辑工作单元执行的一系列操作,这些操作要么全部成功要么全部失败。事务确保了多个数据的修改作为一个单元来处理。

假如,张三在ATM机上给李四转账100元,在银行的业务系统中,主要会执行两步数据变更操作:

  1. 从张三的账户减去100元

  2. 给李四的账户增加100元

试问,如果操作1执行成功,操作2执行失败会发生什么?

事务的四个特性

如果某个数据库支持事务,那么该数据库必须具备ACID四个特性,即Atomicity(原子性)、Consistency(一致性)、Isolation(隔离性)、Durability(持久性)。

MySQL的事务控制

默认情况下,MySQL是自动提交事务的,即每一条INSERT、UPDATE、DELETE的SQL语句提交后会立即执行COMMIT操作。因此,要开启一个事务,可以使用start transactionbegin,或者将autocommit的值设置为0.

例子

  1. 登陆数据库,使用student数据库并查看所有的数据表

USE student;SHOW TABLES;

MySQL中事务控制对的示例分析
2. 创建bank_account数据表并插入两条记录,设置张三的balance字段值+1000

CREATE TABLE bank_account(
	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
	name VARCHAR(30) COMMENT '姓名',
	balance DECIMAL(18, 2) COMMENT '账户余额');INSERT INTO bank_account(id, name, balance) VALUE(1, '张三', 0);INSERT INTO bank_account(id, name, balance) VALUE(2, '李四', 0);UPDATE bank_account SET balance = balance + 1000 WHERE id = 1;

MySQL中事务控制对的示例分析
3. 查看默认的autocommit值

SELECT @@autocommit;

MySQL中事务控制对的示例分析
4. 查看bank_account数据表所有记录

SELECT * FROM bank_account;

MySQL中事务控制对的示例分析
5. 开始事务控制并执行两条SQL语句

START TRANSACTION;UPDATE bank_account SET balance = balance - 100 WHERE id = 1;UPDATE bank_account SET balance = balance + 100 WHERE id = 2;COMMIT;

MySQL中事务控制对的示例分析
6. 查看此时数据表的内容

SELECT * FROM bank_account;

MySQL中事务控制对的示例分析
7. 再次开始事务控制,同样插入两条一样的SQL语句,但将commit(提交)变为rollback(回滚)

START TRANSACTION;UPDATE bank_account SET balance = balance - 100 WHERE id = 1;UPDATE bank_account SET balance = balance + 100 WHERE id = 2;ROLLBACK;

MySQL中事务控制对的示例分析
8. 再次查看数据表内容,发现回滚之后数据无变化

SELECT * FROM bank_account;

MySQL中事务控制对的示例分析
注:本文是博主MySQL学习的总结,不支持任何商用,转载请注明出处!如果你也对MySQL学习有一定的兴趣和理解,欢迎随时找博主交流~

以上是“MySQL中事务控制对的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯