
Webアプリをoracleからpostgresqlに移行しています。
行き詰ってしまったので、どなたかアドバイスをお願いします!
セッション1で
LOCK TABLE abc IN EXCLUSIVE MODE
としている状態で、セッション2で
select処理をして内容表示する処理があるのですが
posgreでは、トランザクションを終了しないと、セッション2は止まったままになってしまいます。
セッション1のトランザクションを終了すると、セッション2で正常に表示できるのですが。。。
oracleでは、selectがLOCK前の状態で結果を返してくれるので
セッション2も正常に表示できています。
いろいろ調べて、selectはOKのようなMODEも試したのですが、
解決できませんでした。
該当テーブルはROW単位ではなく、全体でLOCKしないとダメなのです。
※試した方法は、
psqlで該当テーブルを、IN EXCLUSIVE MODEでLOCKし、Webアプリで
select表示する処理を行いました。
よろしくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
EXCLUSIVE MODE のロックと SELECT は競合しません。
Oracleと同じ動作です。「Webアプリのselect」が、更新処理や FOR SHARE/UPDATE 等、
select以外の処理を勝手に追加していませんか?
参考URL:http://www.postgresql.jp/document/current/html/e …
この回答への補足
有難うございます。
私も参考URLを見て、うまくいくはずと思ったのですが、実際にはトランザクション終了待ちになってしまい、ダメでした。
Webアプリは selectした内容を表に表示しているだけで
更新や FOR SHARE/UPDATE などは行っていないのですが。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数テーブルにまたがるmax
-
「テーブルに座って……」という...
-
オーダーの覚え方について
-
構文エラー : 演算子がありませ...
-
Microsoft Access:クエリのフ...
-
Access2000の削除クエリで消し...
-
一つ前に戻るには…
-
Accessで2種類のデータベースを...
-
Excelのテーブルでmatch関数の...
-
特定物と不代替物の違い
-
男性と2人で飲食店に行きテーブ...
-
バッチファイルを使ったテーブ...
-
コンボボックスにレコードセッ...
-
テーブル名の前のドットの意味
-
Access2003について
-
SQliteの日付検索について
-
ACCESS(VBA)について
-
データベースの登録順序を簡単...
-
accessでレコード更新直後の反...
-
UPDATE文
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT 文の NULL列は?
-
テーブルに存在しない列をselec...
-
SQLにて指定日付より前、かつ最...
-
SQLでUPSERTを一度に複数行やる...
-
PostgreSQLの断片化の状況を確...
-
単純なselectが遅くなるのです...
-
MS Access から PostgreSQL へ...
-
javaでデータベース上のテーブ...
-
2つのテーブルで引き算 postgres
-
Postgresqlのレポート機能について
-
reindex と update のデッドロック
-
Postgresのデータ領域の拡張に...
-
デットロック回避策(autocommit...
-
テーブルにcsvファイルをインポ...
-
PostgreSQL 8.0.2 の ERROR: r...
-
PostgreSQL レコードからアイテ...
-
同一カラムに複数条件指定
-
備品管理のデータベースについて
-
PostgresSQLでテーブル定義の抽...
-
DISTINCTとGROUP BYの違い
おすすめ情報