这篇文章主要为大家展示了如何使用MySQL事务,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。
事务的概念
MySQL事务是一个或者多个的数据库操作,要么全部执行成功,要么全部失败回滚。事务是通过事务日志来实现的,事务日志包括:redo log和undo log。
事务的状态
活动的(active)
事务对应的数据库操作正在执行过程中时,我们就说该事务处在活动的状态。
部分提交的(partially committed)
当事务中的最后一个操作执行完成,但由于操作都在内存中执行,所造成的影响并没有刷新到磁盘时,我们就说该事务处在部分提交的状态。
失败的(failed)
当事务处在活动的或者部分提交的状态时,可能遇到了某些错误(数据库自身的错误、操作系统错误或者直接断电等)而无法继续执行,或者人为的停止当前事务的执行,我们就说该事务处在失败的状态。
中止的(aborted)
如果事务执行了半截而变为失败的状态,撤销失败事务对当前数据库造成的影响,我们把这个撤销的过程称之为回滚。当回滚操作执行完毕时,也就是数据库恢复到了执行事务之前的状态,我们就说该事务处在了中止的状态。
提交的(committed)
当一个处在部分提交的状态的事务将修改过的数据都同步到磁盘上之后,我们就可以说该事务处在了提交的状态。
从图中大家也可以看出了,只有当事务处于提交的或者中止的状态时,一个事务的生命周期才算是结束了。对于已经提交的事务来说,该事务对数据库所做的修改将永久生效,对于处于中止状态的事务,该事务对数据库所做的所有修改都会被回滚到没执行该事务之前的状态。
事务的作用
事务主要是为了保证复杂数据库操作数据的一致性,尤其是在并发访问数据时。
MySQL 事务主要用于处理操作量大,复杂度高的数据。
事务的特点
原子性(Atomicity,又称不可分割性)
事务的数据操作,要么全部执行成功,要么全部失败回滚到执行之前的状态,就像这个事务从来没有执行过一样。
隔离性(Isolation,又称独立性)
多个事务之间是相互隔离,互不影响的。数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。
四种隔离状态:
1. 读未提交(Read uncommitted)
2. 读提交(Read committed)
3. 可重复读(Repeatable read)
4. 串行化(Serializable)
一致性(Consistency)
在事务操作之前和之后,数据都是保持一个相同的状态,数据库的完整性没有被破坏。
原子性和隔离性,对一致性有着至关重要的影响。
持久性(Durability)
当事务操作完成后,数据会被刷新到磁盘永久保存,即便是系统故障也不会丢失。
事务的语法
数据
#创建数据表:
create table account(
-> id int(10) auto_increment,
-> name varchar(30),
-> balance int(10),
-> primary key (id));
#插入数据:
insert into account(name,balance) values('老王媳妇',100),('老王',10);
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容猜你喜欢
AI推送时光机如何使用MySQL事务
数据库2024-04-02
MySQL 如何使用事务
数据库2022-05-17
如何使用 PHP 执行 MySQL 事务?
数据库2024-05-12
MySQL事务与隔离级别如何使用
数据库2023-07-05
MySQL事务详解:何时应该考虑使用事务?
数据库2024-03-01
mysql如何关闭事务
数据库2024-04-02
iterate如何配合事务使用
数据库2024-09-19
如何在 Golang 中使用事务?
数据库2024-05-14
mysql事件与事务如何区分
数据库2024-04-02
django中使用mysql的事务
数据库2019-06-17
事务如何在Spring Boot 中使用
数据库2023-05-31
FMDB如何使用SQLite事务Save Point
数据库2023-06-04
如何在java中使用JDBC事务
数据库2023-06-14
如何在Mysql数据库中使用视图、事务和索引
数据库2024-04-02
如何找到MySQL长事务
数据库2024-04-02
详解如何利用GORM实现MySQL事务
数据库2024-04-02
如何使用SQLite执行事务操作
数据库2024-04-09
咦!没有更多了?去看看其它编程学习网 内容吧