2015-11-04 57 views
0

我做一個簡單的插入行中某事務的,這裏是我跟着插入內幕交易造成獨佔鎖

  • 開始的步驟;
  • 插入數據
  • 查詢pg_locks對

的pg_locks對現在說有一個排他鎖在下面的圖片。

根據文檔,獨佔鎖只能通過刷新實體化視圖併發獲取。

我在這裏做錯了什麼?

使用pgsql的 - 插入前9.4

PG鎖表有四排,這是由於查詢pg_locks對錶本身在兩個單獨的會話。

插入後,它有兩個額外的行,其中一個是實際事務ID本身是一個排他鎖,另一個是對關係RowExclusiveLock

+0

你看過所有這些列的含義嗎? http://www.postgresql.org/docs/9.2/static/view-pg-locks.html提示:這裏的排他鎖是什麼? –

+0

我知道它只被保留一行,但在這種情況下,ExclusiveLock和RowExclusiveLock之間有什麼區別。 –

+0

據我所知,'ExclusiveLock'不是用於關係(並且請將樣例數據像*格式*文本那樣發佈,而不是截圖) –

回答

1

這些都是對事務ID鎖。這完全正常。

目的是另一個事務可以嘗試獲取此事務上的鎖,導致它在繼續之前等待第一個事務提交或回滾(並因此釋放自己的鎖)。

你只需要擔心關係鎖。

+0

哦..我明白了......所以排他鎖是用於事務處理的,而關係是實際的RowExclusiveLock –