表output_values_center1
(和其他)继承output_values
。我定期截断表output_values_center1
并加载新数据(在一个事务中)。那时用户可以请求一些数据,并且他收到错误信息。为什么它发生(选择查询请求只有一条记录),以及如何避免这样的问题:select和truncate之间的死锁(postgresql)
2010-05-19 14:43:17 UTC ERROR: deadlock detected
2010-05-19 14:43:17 UTC DETAIL: Process 25972 waits for AccessShareLock on relation 2495092 of database 16385; blocked by process 26102.
Process 26102 waits for AccessExclusiveLock on relation 2494865 of database 16385; blocked by process 25972.
Process 25972: SELECT * FROM "output_values" WHERE ("output_values".id = 122312) LIMIT 1
Process 26102: TRUNCATE TABLE "output_values_center1"
你可以从这个错误消息中扩展出关系ID吗?即'选择2494865 :: regclass'等。 – araqnid 2010-05-19 18:24:53
谢谢你,问题是更有用然后回答,后看关系id我明白哪里是问题:) – valodzka 2010-05-20 16:36:34