tcl
Transaction Controller Language 事务控制语言
事务的acid特性:
a:原子性:一个事务不可分割,要么都执行,要么都不执行
c:一致性:一个事务执行,会使数据从一个状态切换到另一个一致状态
i:隔离性:一个事务的执行不受其他事务的干扰
d:持久性:一个事务一旦提交,则会永久的改变数据库的数据
事务的创建:
①隐式事务:事务没有明显的开启和结束的标记
比如:insert、update、delete语句,虽没有明显事务开启和结束的标记,但都是一个事务,即mysql自动为我们补全了事务的开启和结束标记(开启是执行SQL语句前自动开启事务,结束是执行SQL语句后自动提交事务)
②显示事务:事务具有明显的开启和结束的标记
前提:先设置自动提交为禁用(执行:set autocommit=0)
步骤1:开启事务
set autocommit=0;
start transcation;【可选的】
步骤2:编写事务中的SQL语句(只支持select/insert/update/delete语句)
比如:update user set total=300 where name='小明'; update user set total=100 where name='小红';
步骤3:结束事务
commit;提交事务(所有SQL都执行成功时的操作)
rollback;回滚事务(所有SQL有至少一个执行错误的操作)