在VB.net中使用MySQL连接器回滚事务

在VB.net中使用MySQL连接器回滚事务,第1张

概述我有一个多行INSERT语句(约300个值集),我想以全有或全无的方式提交给MySQL数据库.insert into table VALUES (1, 2, 3), (4, 5, 6), (7, 8, 9); 在某些情况下,命令中的一组值将不符合表的条件(例如,重复键).发生这种情况时,我不希望将任何先前的集合添加到数据库中.我已经用以下代码实现了这一点,但

我有一个多行INSERT语句(约300个值集),我想以全有或全无的方式提交给MySQL数据库.

insert into table VALUES(1,2,3),(4,5,6),(7,8,9);

在某些情况下,命令中的一组值将不符合表的条件(例如,重复键).发生这种情况时,我不希望将任何先前的集合添加到数据库中.我已经用以下代码实现了这一点,但是,我的rollback命令似乎没有什么不同.我使用了以下文档:http://dev.mysql.com/doc/refman/5.0/es/connector-net-examples-mysqltransaction.html

Dim transaction As MysqLTransaction = sqlConnection.BeginTransaction()sqlCommand = New MysqLCommand(insertStr,sqlConnection,transaction)Try    sqlCommand.ExecuteNonquery()Catch ex As Exception    writetoLog("EXCEPTION: " & ex.Message & vbNewline)    writetoLog("Could not execute " & sqlCmd & vbNewline)    Try        transaction.Rollback()        writetoLog("All statements were rolled back." & vbNewline)        Return False    Catch rollbackEx As Exception        writetoLog("EXCEPTION: " & rollbackEx.Message & vbNewline)        writetoLog("All statements were not rolled back." & vbNewline)        Return False    End TryEnd Trytransaction.commit()

我抛出了DUPliCATE KEY异常,没有Rollback Exception异常,并且每组值都被重复提交给数据库.我究竟做错了什么?最佳答案您是否在使用MyISAM表(默认设置)? MyISAM不支持交易.如果需要事务,请使用InnoDB表. 总结

以上是内存溢出为你收集整理的在VB.net中使用MySQL连接器回滚事务 全部内容,希望文章能够帮你解决在VB.net中使用MySQL连接器回滚事务 所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1165652.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存