我最近从postgresql8升级到postgresql9。我有一个标记为@Transactional(readonly = true)的方法,并在序列上调用nextval。它在Postgres8中运行良好但在Postgres9中失败了。 我环顾四周但没有具体的东西。有没有人遇到这个问题。 我可以编写一个拦截器来改变要写入的事务,但是想知道这是否现在是一个新限制,可以通过postgresq9上的某些配置设置进行更改
答案 0 :(得分:1)
05/11/2011 02:29 PM,Dae-man Yang写道:
我将postgresql从8.4.2升级到9.0.4。但我有一个问题。该 错误消息'无法在只读事务'
中执行nextval()请帮帮我。
nextval()修改一个序列,所以你不应该在一个序列中执行它 只读事务。 Pg 9.0.4强制执行此操作,但它仍然是一个错误 在任何试图在只读事务中使用nextval()的东西 在9.0之前,Pg只是没有注意到并警告你。
- Craig Ringer
http://archives.postgresql.org/pgsql-general/2011-05/msg00373.php