①定义:
一个或者一组SQL语句(每个SQL语句相互依赖)组成一个执行单元,执行单元要么全部执行,要么全部不执行。
如果单元中某条SQL语句一旦执行失败或产生错误,整个单元将会回滚。所有受到影响的数据将返回到事物开始以前的状态;
如果单元中的所有SQL语句均执行成功,则事物被顺利执行。
②事务的四大特性:ACID
原子性:
事务包含的所有操作要么全部成功,要么全部失败回滚。
一致性:
事务必须使数据库从一个一致性状态变换到另一个一致性状态
以转账事务来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性。
隔离性:
当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离,不受其他事务的干扰。
持久性:
一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的
③创建事务
隐式事务:insert、update、delete(自动提交)
显式事务:
步骤一
set autocommit = 0;(自动提交功能关闭,只针对当前事务有效)
start transaction(可省略)
步骤二
事务中的SQL语句(select、insert、update、delete增删改查)
步骤三(结束事务)
commit 提交事务
rollback 回滚事务(保存到内存,没有保存到磁盘文件)