當我們創建表時,PostgresSQL中的默認鎖定機制是什麼?它是行,頁面,表級還是別的?如何在PostgreSQL中創建表時指定顯式鎖定
當我們創建表時,是否可以指定行級鎖定?在Sybase中就像下面這樣。
CREATE TABLE user
(...)
LOCK DATRAROWS
或者我們不需要指定任何鎖定策略,並讓我們在處理CRUD時選擇最佳選擇嗎?
乾杯!
當我們創建表時,PostgresSQL中的默認鎖定機制是什麼?它是行,頁面,表級還是別的?如何在PostgreSQL中創建表時指定顯式鎖定
當我們創建表時,是否可以指定行級鎖定?在Sybase中就像下面這樣。
CREATE TABLE user
(...)
LOCK DATRAROWS
或者我們不需要指定任何鎖定策略,並讓我們在處理CRUD時選擇最佳選擇嗎?
乾杯!
在PostgreSQL的CREATE TABLE時間裏沒有任何東西可以指定。在運行時,您可以select rows FOR UPDATE
or FOR SHARE
。如果你從其他平臺來到PostgreSQL,你應該瀏覽concurrency control上的文檔。
創建表時沒有鎖定。 鎖定可以在這裏讀取:http://www.postgresql.org/docs/9.0/static/explicit-locking.html
我相信postgres總是使用可能性最小的入侵鎖定機制 - 在大多數情況下MVCC行級鎖定。 – 2011-04-30 00:29:33
爲什麼你需要這樣做? – 2011-04-30 06:37:32
我來自Sybase空間,我們用它來顯式設置鎖定數據行,在這裏以我的具體用例來說,我不希望Postgres使用除行級鎖定之外的任何其他功能。現在我明白PGSql中的事情有點不同了:-) – sojin 2011-05-01 14:28:33