Mysql事务控制语言

事务的模式:

是指,在mysql的安装之后的一种语句执行模式:

自动提交模式:

这是默认模式。这种模式,会让我们的sql,每一条语句,都会“当做”一个事务去执行。

set autocommit = 1; //这是默认值

手动提交模式:

这种模式,我们通常使用的增删改语句,并不会立即生效,而是需要在之后人为使用“commit”来提交才能生效。

set autocommit = 0;

举例:

set autocommit = 0;#设置为手动提交模式了,即非自动

insert into .......

update .....

delete ......

commit; //提交上述多条增删改语句,此时才生效;否则就不会生效;

典型事务安全应用的代码模式

基本模式:

1, start transaction; //也可以使用:begin;,表示“启动(开启/创建)一个事务”

2,执行若干业务上需要的增删改语句;

3,判断是否发生错误:

如果错误:rollback;//回滚事务;这样之后,之前的多条语句,不管是否执行过,都“撤销”

如果没有错:commit;//提交事务,也就是对之前的所有事情一次性进行提交确认——生效了

体现在php中,一般就这么写:

1,mysql_query(“start transaction;”);//启动一个事务

2,执行若干语句:

$result1 = mysql_query(“insert into .....”);

$result2 = mysql_query(“update ....”);

.......

3,判断执行结果并决定是提交还是回滚:

if( $result1 && $result2 && .... ){

mysql_query(“commit”);

}

else{

mysql_query(“rollback;”);

}

说明:

如果按这种“启动事务”的代码流程,则跟系统中的事务模式的设置无关了。

案例:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191204A042S800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券