mysql多语句查询问题(如果一个查询失败我们如何回滚)

时间:2011-03-16 14:15:23

标签: mysql


我使用Mysql c api进行数据库交互,我想知道如果一个Mysql多语句查询失败那么我们如何回滚所有成功执行的查询...
EX- mysql_query(conn,“select * from account_db; select account(*)from account_dbb; select * from account_db”)
如果存在查询彼此依赖的情况,并且此处如果一个查询失败,那么相关的其他查询应该回滚以使数据库一致性
,[mysql多语句逐个执行查询所以我们将如何检查所有查询是否会运行,如果一切都可以运行,那么只有进程继续]
在这个例子中,第二个查询是错误的,我想这样做,如果有人查询失败,数据库中不应该出现任何变化,这可能吗?

1 个答案:

答案 0 :(得分:0)

现在我得到了一个解决方案,我需要在这里使用交易,用于阅读交易go-> http://www.databasejournal.com/features/mysql/article.php/3382171/Transactions-in-MySQL.htm
所以我的查询看起来像 - mysql_query(conn,“begin; select * from account_db; select count(*)from account_dbb; select * from account_db; commit”)

并且在代码中你遇到一个查询失败的地方我们可以写

的mysql_query(康涅狄格州, “回滚”);

的mysql_query(康涅狄格州, “提交”);

现在如果任何查询失败,所有查询更新都将回滚.............