Ruby `prepare':错误:准备好的语句“should_insert”已经存在(PG::DuplicatePstatement)
Posted
技术标签:
【中文标题】Ruby `prepare\':错误:准备好的语句“should_insert”已经存在(PG::DuplicatePstatement)【英文标题】:Ruby `prepare': ERROR: prepared statement "should_insert" already exists (PG::DuplicatePstatement)Ruby `prepare':错误:准备好的语句“should_insert”已经存在(PG::DuplicatePstatement) 【发布时间】:2015-12-22 15:35:22 【问题描述】:我看过链接
How to fix PG::DuplicatePstatement: ERROR?
但它仍然没有解决我收到的错误消息
`prepare': ERROR: prepared statement "should_insert" already exists (PG::DuplicatePstatement)
我应该把上面链接中答案中的代码块放在哪里?我必须调用方法才能执行吗?
db_connection = PGconn.connect("localhost", 5433, '', '', "dev_ddb", "user", "pass")
db_connection.prepare('should_insert', 'SELECT COUNT(*) from users where user_id = $1')
【问题讨论】:
我在名为 pg_init.rb 的配置文件夹中创建了一个新的初始化程序,并将代码放在上面的“如何修复...”链接中。但是,它仍然给我同样的错误。我的代码在一个名为 app.rb 的文件中,我正在使用 ruby app.rb 对其进行测试。不确定这是否会有所不同。 【参考方案1】:我能够通过取消分配准备好的语句来完成这项工作。我在 exec_prepared 语句之后插入了这一行。
db_connection.exec("DEALLOCATE should_insert")
【讨论】:
以上是关于Ruby `prepare':错误:准备好的语句“should_insert”已经存在(PG::DuplicatePstatement)的主要内容,如果未能解决你的问题,请参考以下文章