免费的网站推广,如何制作视频网站,如花建站,wordpress最大文件上传大小修改事务又叫做TCL#xff0c;全称是transaction control language#xff0c;意思是事务控制语言。 作者#xff1a;Java的架构师技术栈 事务又叫做TCL#xff0c;全称是transaction control language#xff0c;意思是事务控制语言。这篇文章还是属于我的mysql基础文章… 事务又叫做TCL全称是transaction control language意思是事务控制语言。 作者Java的架构师技术栈 事务又叫做TCL全称是transaction control language意思是事务控制语言。这篇文章还是属于我的mysql基础文章在前面我们介绍了下面这些基础知识 数据库的增查改删操作数据表的增查改删操作数据的增查改删操作数据的约束以及增查改删Mysql中的内置函数这篇文章还是基础系列的文章主要是介绍mysql中的事务为了保持文章的完整性就算你没有看过之前的教程也没问题。 一、事务的理解 张三有1000块钱李四也有1000块钱张三给李四500,还剩下500李四此时就有1500。我们想象着会执行下面的mysql语句 update table user set money500 where name 张三 update table user set money1500 where name 李四 但是在计算机中可能会不一样。可能上面语句执行了下面的没有执行因此为了保证两条语句要么都执行要么都不执行这时候就用到了事务。 事务的意思是一条或者是一组语句组成一个单元这个单元要么全部执行要么全不执行。 事务具有四个特性也是面试常考的四个特性ACID A(原子性Atomicity)原子性指的是事务是一个不可分割的要么都执行要么都不执行。C(一致性Consistency)事务必须使得数据库从一个一致性状态到另外一个一致性状态。I(隔离性Isolation)指的是一个事务的执行不能被其他的事务所干扰。D(持久性Durability)持久性指的是一个事务一旦提交了之后对数据库的改变就是永久的。二、创建一个事务 事务其实可以划分为两大类隐式的事务和显示的事务 隐式的事务很简单比如我们的insert、delete、update、select这些语句都是隐式的事务。显示的事务指的是带有很明显的开始和结束的标记下面就来创建一个显示的事务。步骤一禁用步骤提交功能 set autocommit 0 步骤二开启一个事务 start transaction 步骤三sql语句 update table user set money500 where name 张三 update table user set money1500 where name 李四 步骤四结束事务 commit(提交)或者是rollback(回滚)。如果确定我们的语句没有问题那么我们就可以commit如果认为我们的语句有问题那就rollback。 在这里新建了一个表然后插入了两条数据。下面我们使用事务来更新一下 在这里我们使用的是commit进行提交。当然如果突然发现我们之前的操作有错误那就可以使用rollback。 三、事务的隔离级别 上面的事务在单个情况下一般不会出现什么问题但是如果同时运行多个就会出现问题了。我们知道并发操作总是会出现各种各样的问题对于事务来说就会出现下面三个典型的问题 (1)脏读 有俩事务T1,T2。如果T1读了一条数据这条数据是T2更新的但是还没提交突然T2觉得不合适进行事务回滚了也就是不提交了。此时T1读的数据就是无效的数据。 (2)不可重复读 有俩事务T1,T2。如果T1读了一条数据之后T2更新了这条数据T1再次读取就发现值变了。 (3)幻读 有俩事务T1,T2。如果T1读了一条数据之后T2插入了一些新的数据T1再次读取就会多出现一些数据。 如何去解决这些问题呢?既然多个事务同时运行不好那就把他们隔离开来。这时候就用到了事务的隔离性。 mysql默认的事务隔离级别为repeatable-readOracle默认的是read-committed 想要去演示事务的隔离级别也很简单只需要开启两个客户端演示就OK了在这里就不说了。 阅读目录置顶)(长期更新计算机领域知识 阅读目录置顶)(长期更新计算机领域知识 阅读目录置顶)(长期科技领域知识 歌谣带你看java面试题