mysql数据事务语言DTL(Data Transaction Language)

    xiaoxiao2021-03-25  181

    事务:就是将一系列的sql语句当作“一句”来执行的一种机制----该系列语句要么全部执行成功,要么一个都不执行。

    事务的特点:原子性(要么全部执行成功,要么一个都不执行)、一致性(数据保持逻辑上的合理性)、隔离性(多个事务同时并发执行,每个事物独立执行)、持久性(硬盘数据的更改)

     

    事物模式:在cmd命令行模式中,是否开启了“一条语句就是一个事务”这个功能

    默认情况下,这个模式是开启的,称为“自动提交模式”;

    关闭后,就是“非自动提交模式”---需要人为提交。(在执行sql语句后,需要人为提交,即执行语句commit;)

    关闭该模式:Set  autocommit=0;

     

    事务执行的基本流程:(针对增删改语句)

    1.开启一个事务:starttransaction;//也可以写成begin;

    2.执行多条增删改语句;//也就是希望这多条语句要作为一个“不可分割”的整体去执行的任务

    3.判断这些语句执行的结果情况:

    If(没有出错){

      Commit;   //提交事务,此时就是一次性完成;

    }else{

      Rollback; //回滚事务,不执行

    }

    具体分两种情况:

    在cmd中,执行语句没有错误,直接commit,有错误,执行rollback;

    在php中

    $link=mysql_connect(“localhost”,”root”,”000”); Mysql_query(“set names utf8”); Mysql_query(“use php39“); $sql=” start transaction;”; Mysql_query($sql); $sql1=” insert into tab_int(f1,f2,f3)values(15,25,35);”; $result1=Mysql_query($sql1); $sql2=” insert into tab_int(f1,f2,f3)values(16,26,36);”; $result2=Mysql_query($sql2); If($result1 && $result2){ mysql_query(“commit;”); echo “事务执行成功!所有任务都已完成”; }else{ mysql_query(“rollback;”); echo “事务执行失败!数据没有被修改”; }

     

    转载请注明原文地址: https://ju.6miu.com/read-458.html

    最新回复(0)