我可以在spring mvc开发的应用程序中看到内部服务器错误,使用wildfly作为web服务器,数据库是PostgreSQL。这个例外是什么意思?

ERROR: cannot execute nextval() in a read-only transaction

以前一切都很好。我试图在stackoverflow上寻找解决方案,但没有找到任何可以解决此问题的方法。

最佳答案

函数nextval()用于递增序列,从而修改数据库的状态。
因为您处于只读事务中,所以会出现该错误。这可能是因为
您显式地启动了一个带有START TRANSACTION READ ONLY或类似内容的只读事务。
配置参数default_transaction_read_only设置为on
您已连接到流复制备用服务器。
如果default_transaction_read_only设置为on,则可以使用

START TRANSACTION READ WRITE;

或通过编辑postgresql.conf或使用superuser命令更改设置
ALTER SYSTEM SET default_transaction_read_only = off;

10-07 22:19