テーブルロック

LOCK TABLE ... IN EXCLUSIVE MODE

 | Session A                                   | Session B                            |
 =======================================================================================================================
 | => BEGIN ; LOCK TABLE t1 IN EXCLUSIVE MODE; |                                      | 1. LOCK TABLEする
 |                                             |                                      |
 |                                             | => SELECT * FROM t1;                 | 2. SELECTは可能
 |                                             | id | n                               |
 |                                             | ----+-----                           |
 |                                             | 1 | 100                              |
 |                                             | 2 | 100                              |
 |                                             | (2 rows)                             |
 |                                             |                                      |
 |                                             | => INSERT INTO t1 VALUES ( 3, 100 ); | 3. INSERTはブロックされる
 |                                             |                                      |
 | =*> COMMIT ;                                |                                      | 4. COMMITされると、ブロック解除されて
 |                                             |                                      | 上のINSERTが実行される
  • SELECTは可能
  • INSERT/UPDATEはブロック

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS