MySQL数据库——TCL语言 事务

 

innodb支持事务,而其他不支持!

事务的ACID属性:经典面试题

 

 

 

第一个隔离级别,可能出现脏读、不可重复读和幻读三个问题

第二个隔离级别,避免了脏读,但是没有避免不可重复读和幻读

第三个隔离级别,避免了脏读、不可重复读,但是无法避免幻读

最高级别(串行化)可以避免幻读。

MySQL中,默认第三个隔离级别

Oracle中,默认第二个隔离级别

#TCL语言
#事务控制语言
事务:一个或一组SQL语句,组成一个执行单元,这个执行单元要么全部执行,要么全部不执行
#案例:转账
回滚:回到最初的状态
SHOW ENGINES;
事务的特性:ACID

事务的创建:
    隐式事务:事务没有明显的开启和结束的标记
        比如INSERT/UPDATE/DELETE事务
        DELETE FROMWHERE id = 1; 就是一条事务
    显式事务:事务具有明显的开启和结束标记
        前提:先设置自动提交功能为禁用
        SET autocommit=0;只针对当前会话有效!
        步骤:
            1.开启事务
            SET autocommit=0;
            START TRANSACTION 可选的
            2.编写事务中的SQL语句:SELECTINSERTUPDATEDELETE
            语句1;
            语句2;
            3.结束事务:要么提交,要么回滚
            COMMIT:提交事务
            ROLLBACK;回滚事务(如果出现异常就回滚)
            达不到根据情况回滚
  savepoinit 节点名:设置保存点,只搭配回滚rollback使用。回滚到保存点。

 

posted @ 2021-02-21 11:49  不妨不妨,来日方长  阅读(58)  评论(0编辑  收藏  举报