第四章 TCL语言
/*
TCL语言:transaction control language 事务控制语言
事务:
一个或一组语句组成的一个执行单元,该执行单元要么全执行,要么全不执行
事务由单独单元的一个或多个SQL语句组成,在这个单元中,每个MySQL语句是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条SQL语句一且执行失败或产生错误,整个单元将会回滚。所有受到影响的数据将返回到事物开始以前的状态;如果单元中的所有SQL语句均执行成功,则事物被顺利执行。
事务的特性:ACID属性
- 原子性 atomicity,一个事务不可再分割,要么都执行要么不执行
- 一致性 consistency,一个事务执行会使数据从一个一致状态切换到另一个一致状态
- 隔离性 isolation,一个事务的执行不受其他事务的干扰
- 持久性 durability,一个事务一旦提交,则会永久的改变数据库的数据
事务的创建:
隐式事务:事务没有明显的开启和结束的标记
比如insert、update、delete语句
显示事务:事务有明显的开启和结束的标记
前提:必须先设置自动提交功能为禁用
set autocommit =0;
步骤1:开启事务
set autocommit =0;
start transaction;可选的
步骤2:编写事务中的sql语句(se