Table "item2.item" で、ACCESS EXCLUSIVE
testdb=# \d item
Table "item2.item"
Column | Type | Collation | Nullable | Default
--------+----------------------+-----------+----------+---------
id | character varying(4) | | |
name | text | | |
price | integer | | |
クライアントA
testdb=# BEGIN;
BEGIN
testdb=# LOCK TABLE item IN ACCESS EXCLUSIVE MODE;
LOCK TABLE
testdb=# SELECT * FROM item WHERE price > 1000;
id | name | price
------+--------------+-------
S001 | ボールペン | 1500
S004 | カーボン用紙 | 1200
(2 rows)
クライアントB
testdb=# DELETE FROM item WHERE id = 'S001';
ロック取得待ち
クライアントA
testdb=# COMMIT;
COMMIT
クライアントB
DELETE 1
testdb=# SELECT * FROM item;
id | name | price
------+--------------+-------
S002 | カッター | 200
S003 | のり | 80
S004 | カーボン用紙 | 1200
S005 | 修正テープ | 530
(4 rows)
ロックが取得でき処理が完了
この記事が気に入ったらサポートをしてみませんか?