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