zoukankan      html  css  js  c++  java
  • SQL之事务

    ●事务的ACID(acid)属性

    ➢1.原子性(Atomicity )

    原子性是指事务是-一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。

    ➢2. 一致性(Consistency)

    事务必须使数据库从一一个--致性状态变换到另外一一个--致性状态

    ➢3.隔离性(Isolation)

    事务的隔离性是指一- 个事务的执行不能被其他事务干扰,即一一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。

    ➢4.持久性(Durability)

    持久性是指-一个事务-一旦被提交,它对数据库中数据的改变就是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响

    ●事务的类型

     隐式事务: 事务没有明显的开启和结束的标记比如insert、update、 delete语句
    delete from:    表where id =1;

    显式事务事务具有明显的开启和结束的标记前提 , 必须先设置自动提交功能为禁用 
    set autocommit = 0;
    ●事务的使用
    #步骤一:开启事务
    set autocommit = 0;
    start transaction ; #可选的
    #步骤二: 编写事务的sql语句(select , insert , update , delete) 
    SELECT * FROM sys;
    ...
    #步骤三:结束事务
    commit ;  #提交事务
    #rollback; #回滚事务,即使事务执行成功,表中数据也不会保存在磁盘中,但是会将事务中操作的表显示,类似于SELECT出来的表可以显示但是不会保存
    ●示例
    1)成功执行
    DROP DATABASE IF EXISTS human;
    CREATE DATABASE IF NOT EXISTS human;
    USE human;
    CREATE TABLE man(
        id INT PRIMARY KEY AUTO_INCREMENT ,
        name VARCHAR(20) NOT NULL
    );
    
    SET AUTOCOMMIT = 0;
    START TRANSACTION;
    insert man
    VALUES (NULL,'archer'),(NULL,'saber'),(NULL,'lancer') ;
    #insert man
    #VALUES (NULL,NULL);
    SELECT * FROM man;
    COMMIT;
    #ROLLBACK; #这里不进行回滚操作,如果需要回滚,那么将COMMIT注释并撤销这句的注释就好

    2)失败执行(事务中部分语句无法执行,导致整个事务没有提交)

    DROP DATABASE IF EXISTS human;
    CREATE DATABASE IF NOT EXISTS human;
    USE human;
    CREATE TABLE man(
        id INT PRIMARY KEY AUTO_INCREMENT ,
        name VARCHAR(20) NOT NULL
    );
    
    SET AUTOCOMMIT = 0;
    START TRANSACTION;
    insert man
    VALUES (NULL,'archer'),(NULL,'saber'),(NULL,'lancer') ;
    insert man
    VALUES (NULL,NULL);#这条语句无法执行
    SELECT * FROM man;
    COMMIT;
    #ROLLBACK;

  • 相关阅读:
    noip模拟赛 集合
    noip模拟赛 旅行
    noip模拟赛 终末
    noip模拟赛 少女
    noip模拟赛 无题
    Java基础知识强化73:正则表达式之分割功能
    Java基础知识强化72:正则表达式之判断功能(手机号码判断 和 校验邮箱)
    Java基础知识强化71:正则表达式之基本规则 和 常用正则表达式
    Java基础知识强化70:正则表达式之引入案例(QQ号码校验)
    Java基础知识强化69:基本类型包装类之Character案例(统计字符串中大写小写以及数字的次数)
  • 原文地址:https://www.cnblogs.com/winter-bamboo/p/10846881.html
Copyright © 2011-2022 走看看