使用单个事务发送查询

时间:2013-12-05 21:07:49

标签: mysql r r-dbi

我正在使用DBI包向MySQL服务器发送查询。我想确保这些查询作为单个事务发送,以避免表锁定。

我使用dbSendQuery函数发送查询:

df <- fetch(dbSendQuery(connection,
                  statement = "SELECT *
                               FROM table"),
      n = -1)

DBI软件包几乎没有说明处理事务,但它所具有的功能列在这些函数下:标题下的dbCommitdbRollbackdbCallProc

  

注意:以下方法处理事务和存储   程序

vignette中的

。似乎没有涉及将查询作为单个事务发送。

如何确保将这些查询作为单个交易发送?

1 个答案:

答案 0 :(得分:1)

警告:未经过测试。

你需要MySQL的一些帮助。默认情况下,MySQL在启用自动提交模式下运行。要禁用自动提交模式,您需要发出START TRANSACTION语句。我怀疑dbCommitdbRollback只是分别执行COMMITROLLBACK

详细信息:http://dev.mysql.com/doc/refman/5.0/en/commit.html

所以你需要做一些像

这样的事情
dbSendQuery(connection, "START TRANSACTION")
# add your dbSendQuery code here
dbCommit(connection)