MySQL数据库——TCL语言 事务
innodb支持事务,而其他不支持!
事务的ACID属性:经典面试题
第一个隔离级别,可能出现脏读、不可重复读和幻读三个问题
第二个隔离级别,避免了脏读,但是没有避免不可重复读和幻读
第三个隔离级别,避免了脏读、不可重复读,但是无法避免幻读
最高级别(串行化)可以避免幻读。
MySQL中,默认第三个隔离级别
Oracle中,默认第二个隔离级别
#TCL语言 #事务控制语言 事务:一个或一组SQL语句,组成一个执行单元,这个执行单元要么全部执行,要么全部不执行 #案例:转账 回滚:回到最初的状态 SHOW ENGINES; 事务的特性:ACID 事务的创建: 隐式事务:事务没有明显的开启和结束的标记 比如INSERT/UPDATE/DELETE事务 DELETE FROM 表 WHERE id = 1; 就是一条事务 显式事务:事务具有明显的开启和结束标记 前提:先设置自动提交功能为禁用 SET autocommit=0;只针对当前会话有效! 步骤: 1.开启事务 SET autocommit=0; START TRANSACTION 可选的 2.编写事务中的SQL语句:SELECT、INSERT、UPDATE、DELETE 语句1; 语句2; 3.结束事务:要么提交,要么回滚 COMMIT:提交事务 ROLLBACK;回滚事务(如果出现异常就回滚) 达不到根据情况回滚
savepoinit 节点名:设置保存点,只搭配回滚rollback使用。回滚到保存点。