事务
事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作
多个操作作为一个整体向系统提交,要么都执行、要么都不执行
事务是一个不可分割的工作逻辑单元
转账过程就是一个整体 它需要两条UPDATE语句来完成,这两条语句是一个整体 如果其中任一条出现错误,则整个转账业务也应取消,两个账户中的余额应恢复到原来的数据,从而确保转账前和转账后的余额不变,即都是1001元
实例:张三转账给李四
事务就是发生异常 回滚到初始状态
事务必须具备以下四个属性,简称ACID 属性
原子性(Atomicity)
事务是一个完整的操作,事务的各步操作是不可分的(原子的),要么都执行,要么都不执行
一致性(Consistency)
当事务完成时,数据必须处于一致状态
隔离性(Isolation)
并发事务之间彼此隔离、独立,它不应以任何方式依赖于或影响其他事务
持久性(Durability)
事务完成后,它对数据库的修改被永久保持
如何创建事务
MySQL中支持事务的存储引擎有InnoDB和BDB
语法: 开始事务 BEGIN ;或 START TRANSACTION;
提交事务 COMMIT ;
回滚(撤销)事务 ROLLBACK ;
示例:
从张三的账户转出500元,存入李四的账户中
自动关闭和开启事务
默认情况下,每条单独的SQL语句视为一个事务
关闭默认提交状态后,可手动开启、关闭事务
语法:关闭/开启自动提交状态 SET autocommit = 0|1;
值为0:关闭自动提交
值为1:开启自动提交
注意:关闭自动提交后,从下一条SQL语句开始则开启新事务,需使用COMMIT或ROLLBACK语句结束该事务
题目:批量插入参加今天“Logic Java”课程考试的十名学生成绩
如果输入的成绩大于100分,则取消操作
题目:办理学生离校手续 将毕业学生的基本信息和考试成绩分别保存到历史表中
&