Postgresql:prepared statement "S_1" already exists

Posted Yuan.Net

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Postgresql:prepared statement "S_1" already exists相关的知识,希望对你有一定的参考价值。

近期由于业务需要和一些json的存储查询需要,把新的应用切到pgsql上来,刚刚切好,是可以正常使用的,但是偶尔会来一下

java连接pgsql 偶尔出现 这个错。
 
org.postgresql.util.PSQLException: ERROR: prepared statement "S_1" already exists 
 
检查sql语句,几乎没问题,又看设置,实在找不到哪里有问题
 
百度网上的资料太少了,干脆我写一篇,方便以后遇到此问题的朋友 解决问题,不用翻来覆去找了
 
经过仔细查阅pgbouncer官方文档 
找到了方法
 

Disabling prepared statements in JDBC

The proper way to do it for JDBC is adding prepareThreshold=0 parameter to connect string.

 在配置文件上加上

jdbc.url=jdbc:postgresql://xxxxx:6432/finance_log?prepareThreshold=0

再次启动,S_1这样的错误几乎找不到了。OK

附官方说明
https://pgbouncer.github.io/faq.html#what-should-my-serverresetquery-be

https://jdbc.postgresql.org/documentation/head/connect.html

以上是关于Postgresql:prepared statement "S_1" already exists的主要内容,如果未能解决你的问题,请参考以下文章

postgresql.conf max_prepared_transactions不起作用

Postgresql:prepared statement "S_1" already exists

函数序列错误,SQL state S1010 while execution a Prepared Statement

Kubernetes stateful set讲解以及一个基于postgreSQL的具体例子

如何在 PostgreSQL 中记录“准备”语句?

PostgreSQL分布式事务配置