
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ランキング
-
SELECT 文の NULL列は?
-
テーブルに存在しない列をselec...
-
PostgreSQLの断片化の状況を確...
-
SQLにて指定日付より前、かつ最...
-
単純なselectが遅くなるのです...
-
2つのテーブルで引き算 postgres
-
COPYコマンドによるTEXT取り込...
-
テーブルにcsvファイルをインポ...
-
SQL 複数テーブルのupdate
-
一つ前に戻るには…
-
会社の飲み会の幹事になり、座...
-
SQLでクエリを保存@ODBC+Access
-
Accessのテーブルデータを一気...
-
「テーブルに座って……」という...
-
MicrosftAccessの分割について
-
ACCESS2003でメニューバーを作...
-
外部キーだけのテーブル(主キ...
-
sqlplusで表示が変なので、出力...
-
テーブルで一番古いレコードだ...
-
すっきりとしたSQL文にしたいの...
マンスリーランキングこのカテゴリの人気マンスリー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でテーブル定義の抽...
-
レコードを1件のみ取得した後...
おすすめ情報