这是表格(简化):
表“public.link”
专栏 | 类型 | 修饰符
---------------+------------------+---- -----------------------------------------------------------
编号 | 整数 | 不为空默认 nextval('link_id_seq'::regclass)
page_id | 整数 |
放置_at | 没有时区的时间戳| 现在默认()
索引:
"link_pkey" 主键,btree (id)
"link_page_id_index" btree (page_id)
外键约束:
"link_page_id_foreign_key" FOREIGN KEY (page_id) REFERENCES page(id) ON UPDATE RESTRICT ON DELETE RESTRICT
这是查询(简化):
更新链接 SET page_id = ?,placed_at = now()
WHERE id IN (SELECT id FROM link ...) AND page_id IS NOT NULL
死锁消息:
错误:检测到死锁 详细信息:进程 5822 等待事务 19705 上的 ShareLock;被进程 5821 阻止。 进程 5821 等待事务 19706 上的 ShareLock;被进程 5822 阻止。 提示:查询详情请查看服务器日志。
由多个进程并行执行的查询如何导致死锁?
谢谢!