40001: serialization_failure
PostgreSQL含义
在 SERIALIZABLE 或 REPEATABLE READ 隔离级别下,事务因与并发修改冲突而无法串行化,已被取消。这是保护数据一致性的预期行为。
原因
并发访问相同数据的事务无法排列成可串行化的顺序、高并发下的写冲突,或 SSI(Serializable Snapshot Isolation)检测到危险依赖。
解决方法
这不是 bug,而是预期的信号:原样重试该事务。在应用中添加自动重试逻辑。为减少冲突,缩短事务;如果并非真正需要,使用较低的隔离级别(READ COMMITTED)。在设计上减少对热点行的争用。