【发布时间】:2017-08-31 00:34:47
【问题描述】:
我在连接到 mysql 数据库的 ruby 脚本中有一些 ruby 代码。当我连接时,我做了一个 MySQL2.query("BEGIN") 来启动一个事务,如果我想回滚我做了 MySQL2.query("ROLLBACK") 或者如果一切都很好并且我想提交我做了 MySQL2.query (“提交”)。
我现在已经转移到 postgres 数据库,而 PG.exec("BEGIN")、PG.exec("ROLLBACK") 和 PG.exec("COMMIT") 似乎没有错误,但我确实收到了警告当我提交时'没有正在进行的事务',所以它似乎正在执行自动提交(即在完成每个 SQL INSERT/UPDATE 时提交)。基本上我希望能够手动回滚或提交。
我想也许我需要关闭自动提交但不知道怎么做,我试过@dbase.exec('SET AUTOCOMMIT TO OFF') 但得到错误'lib/database.rb:28:in `exec':错误:无法识别的配置参数“autocommit”(PG::UndefinedObject)'。
我已经做了相当多的谷歌搜索,但没有任何运气;(。
我正在使用 postgres 9.5 和 ruby 2.4.1。
【问题讨论】:
标签: ruby postgresql