我是Postgresql的新手.我想模拟这个时间表的死锁:
@H_404_13@如何模拟Postgresql中的死锁?有可能吗?如何锁定特定列?
编辑:
BEGIN; UPDATE deadlock_demonstration SET salary1=(SELECT salary1 FROM deadlock_demonstration WHERE worker_id = 1 FOR UPDATE)+100 WHERE worker_id=1; SELECT pg_sleep(5); commit; SELECT salary2 FROM deadlock_demonstration WHERE worker_id = 1 FOR UPDATE;
在另一个屏幕中,我已经运行了这个
BEGIN; UPDATE deadlock_demonstration SET salary2=(SELECT salary1 FROM deadlock_demonstration WHERE worker_id = 1 FOR UPDATE)+200 WHERE worker_id=1; SELECT pg_sleep(5); commit; SELECT salary1 FROM deadlock_demonstration WHERE worker_id = 1 FOR UPDATE;
为什么没有发生死锁?你能给出一个建议,我应该改变什么来刺激僵局?