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

来源:互联网 发布:windows查看版本号 编辑:程序博客网 时间:2024/06/01 10:06

事务:就是将一系列的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 “事务执行失败!数据没有被修改”;}


 

0 0