TCL语言:Transaction control language 事务控制语言
事务:一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行
事务的ACID(acid)属性:
1.原子性(Atomicity):指事务是一个不可分割的工作单位,事务中的操作要么发生,要么都不发生
2.一致性(Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性的状态
3.隔离性(Isolation):事务的隔离性是指一个事务的执行不能被其他事务干扰
4.持久性(Durability):指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响
案例:转账 张三丰 1000 郭襄 1000 update 表 set 张三丰的余额=500 where name='张三丰' 意外 update 表 set 郭襄的余额=1500 where name='郭襄'
存储引擎(表类型) show engines #查看存储引擎 注:不是所有的搜索引擎都支持事务
事务的创建:
隐式事务:事务没有明显的开启和结束的标记,如insert、update、delete语句
delete from 表 where id=1;
显式事务:事务具有明显的开启和结束标记
前提:必须先设置自动提交功能为禁用
set autocommit=0; #禁用自动提交功能,只在当前对话中有效
步骤一:开启事务 set autocommit=0; start transaction; #可选的 步骤二:编写事务中的sql语句 (select insert update delete) 语句1; 语句2; ... 步骤三:结束事务 rollback; #回滚事务(假如有意外) commit; #提交事务
#演示事务的使用步骤 #开启事务 set autocommit=0; start transaction; #编写一组事务语句 update account set balance=500 where username='张无忌'; update account set balance=1500 where username='赵敏'; #结束事务 commit;



