由於使用的PostgreSQL數據庫,沒有資料。只好進行谷歌。
最終在一個英文論壇中發現了解決方法。
如下:
1.檢索出死鎖進程的ID
復制代碼 代碼如下:
SELECT * FROM pg_stat_activity WHERE datname='死鎖的數據庫ID ';
檢索出來的字段中,【wating 】字段,數據為t的那條,就是死鎖的進程。找到對應的【procpid 】列的值。
2.將進程殺掉
復制代碼 代碼如下:
SELECT pg_cancel_backend('死鎖那條數據的procpid值 ');
結果:運行完後,再次更新這個表,sql順利執行。
ps:查找了一下數據庫自己的函數列表,發現pg_terminate_backend()函數也可以殺掉進程。
官網上給出的內容:http://www.postgresql.org/docs/9.0/static/functions-admin.html