这是表格(简化):
表“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 阻止。 提示:查询详情请查看服务器日志。
由多个进程并行执行的查询如何导致死锁?
谢谢!