碎碎念
在做设计的时候,听到同事问,Postgre的设定值中有没有一个设定值,他的功能是事务运行时间太长的话就自动中断and回滚
于是整理了postgre数据库的dbm级别的所有设定值
发现并没有能够决定事务最大执行时间的设定值
但是相似的设定是:
如果单一sql执行时间太长,那么就中断,这个设定是
SET statement_timeout = 30000;(会话层面,只有本次会话中生效,下一次会话仍然是默认值)
ALTER SYSTEM SET statement_timeout = ‘ 30s ’;(数据库层面的设定)
因为一个事务中有若干语句组成,如果每一个都不超过规定值的话,在事务中语句数量较少的时候就不会出现超时
但是如果是控制语句的数量以防止事务执行过长的话,似乎并没有那种官方设定值
另外在jdbc中要完成上述的设置的话可以参考
PGStatement (PostgreSQL JDBC postgresql API version 42.3.1)
Index (PostgreSQL JDBC postgresql API version 42.3.1)
在java中使用这个方法就可以