现在我正在从 SQLite 迁移到 Postgresql,我遇到了这个问题。以下准备好的语句适用于 SQLite:
id = 5
st = ActiveRecord::Base.connection.raw_connection.prepare("DELETE FROM my_table WHERE id = ?")
st.execute(id)
st.close
不幸的是,它不适用于 Postgresql - 它在第 2 行引发异常。我正在寻找解决方案并遇到了这个问题:
id = 5
require 'pg'
conn = PG::Connection.open(:dbname => 'my_db_development')
conn.prepare('statement1', 'DELETE FROM my_table WHERE id = $1')
conn.exec_prepared('statement1', [ id ])
这个在第 3 行失败。当我打印这样的异常时
rescue => ex
ex 包含这个
{"connection":{}}
在命令行中执行 SQL 是可行的。知道我做错了什么吗?
提前致谢!