求一个mysql Insert事务写法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一个mysql Insert事务写法相关的知识,希望对你有一定的参考价值。

连续执行insert "user" values("A");insert "user" values("B");insert "user" values("C");这样的SQL语句,要求三个如果有执行失败的就三个的数据都不写进数据库,应该怎么写吗?

参考技术A 这个直接用mysql语句我不知道怎么实现,借助php还是比较简单的。
注意,表必须为InnoDB或DBD类型,其他类型不支持Transaction事务。
下面是一段PHP代码,用来实现确认和出错回滚:

mysql_query("SET AUTOCOMMIT=0");
$sql1='insert "user" values("A");';
$sql2='insert "user" values("B");';
$sql3='insert "user" values("C");';

$res1 = mysql_query($sql1);
$res2 = mysql_query($sql2);
$res3 = mysql_query($sql3);

if($res1 && $res2 && $res3)
mysql_query("COMMIT");
else
mysql_query("ROLLBACK");
参考技术B 你这个直接用mysql语句我不知道怎么实现,借助PHP还是比较简单的。
注意,表必须为InnoDB或DBD类型,其他类型不支持Transaction事务。
下面是一段PHP代码,用来实现确认和出错回滚:

mysql_query("SET AUTOCOMMIT=0");
$sql1='insert "user" values("A");';
$sql2='insert "user" values("B");';
$sql3='insert "user" values("C");';

$res1 = mysql_query($sql1);
$res2 = mysql_query($sql2);
$res3 = mysql_query($sql3);

if($res1 && $res2 && $res3)
mysql_query("COMMIT");
else
mysql_query("ROLLBACK");本回答被提问者和网友采纳
参考技术C INSERT INTO `user`
SELECT 'A' UNION ALL
SELECT 'B' UNION ALL

SELECT 'C' ;

以上是关于求一个mysql Insert事务写法的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server中insert/update的高性能写法

MySQL中insert into语句的6种写法

求数据库大神,mysql事务隔离级别repeatable-read 详解

mysql insert 事务相关(草稿)

MySQL中(insert/update/delete)到底有多少种写法?

MySQL中(insert/update/delete)到底有多少种写法?