能看出在 MySQL 中,只有InnoDB 是支持事务的。1.2 事务基本概念
补充:只读事务中只是不允许修改那些其他事务也能访问到的表中的数据,对于临时表来说(我们使用 CREATE TMEPORARY TABLE 创建的表),由于它们只能再当前会话中可见,所有只读事务其实也是可以对临时表举行增、删、改操纵的。
步骤2: 一系列事务中的操纵(主要是DML,不含DDL)
- READ ONLY和READ WRITE是用来设置所谓的事务访问模式的,就是以只读还是读写的方式来访问数据库中的数据,一个事务的访问模式不能同时即设置为只读的也设置为读写的,以是不能同时把READ ONLY和READ WRITE放到START TRANSACTION语句后边。
- 假如我们不显式指定事务的访问模式,那么该事务的访问模式就是读写模式
注意:当上一个 BEGIN 事务,没有做提交的时间,又再执行了一个 BEGIN 事务,则上一个,在这个 BEGIN 上一个开启的事务,就会被隐式的自动提交到事务了 。
- 当前的 autocommit 体系变量的值为 OFF ,我们手动把它调为 ON 时,也会隐式的提交前边语句所属的事务。
- 使用 LOCK TABLES 、 UNLOCK TABLES 等关于锁定的语句也会 隐式的提交 前边语句所属的事务。
2.5 使用举例2:测试不支持事务的engine
- 当我们设置autocommit=0时,不论是否采用 START TRANSACTION 大概 BEGIN 的方式来开启事 务,都需要用 COMMIT 举行提交,让事务生效,使用 ROLLBACK 对事务举行回滚。
- 当我们设置 autocommit=1 时,每条 SQL 语句都会自动举行提交。 不过这时,假如你采用 START TRANSACTION 大概 BEGIN 的方式来显式地开启事务,那么这个事务只有在 COMMIT 时才会生效, 在 ROLLBACK 时才会回滚。
myisam 存储引擎,不支持事务,InnoDB 存储引擎,支持事务。
幻读:强调的是一个事务按照某个相同条件多次读取 记录时,后读取时读取了之前没有读到的记录 。
小结:3.6 不同隔离级别举例
数据库规定了多种事务隔离级别,不同隔离级别对应不同的干扰程度,隔离级别越高,数据一致性就越好,但并发性越弱。
“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |