主に IT 技術を整理するためにメモ的に書き溜めています。少しだけフリーソフトもあるよ。コメントを残すには、 facebook を使ってください。

PostgreSQL の Isolation Level

最終更新日 2007-04-10 05:53:03 (1年以上前の記事です)

DBMS には隔離レベルと言うのがあって、 PostgreSQL の場合少し特殊みたいです。
デフォルトでは Read Committed なんだけど、 Transaction 中の Update 後に、他の Transaction による SELECT は Commit を待たずに実行できるようだ。

正確には以下のような感じ。 更新-参照
trans1  |  trans2
--------+--------
BEGIN;  |BEGIN;
UPDATE; |
        |SELECT; <- update 前のレコードを参照
COMMIT; |
        |SELECT; <- update 後のレコードを参照
更新-更新
trans1  |  trans2
--------+--------
BEGIN;  |BEGIN;
UPDATE; |
        |UPDATE; <- COMMIT/ROLLBACK されるまで待つ
COMMIT; |        <- COMMIT された内容に対して UPDATE を実行
        |COMMIT;
SQLServer だと SELECT も待つんだけどね。だって Transaction 中はそのデータが Commit されるか Rollback されるか分からない状態なわけだからです。
最終更新日 2007-04-10 05:53:03

コメント このエントリーをはてなブックマークに追加

フリーソフトウエア
EnjoiFLV
EnjoiPacket
EnjoiCrypto
ランキング
rank2, rank3, rank7, rank10, rank11
todo メモ
facebook 対応
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5
RSS
非認証

検索
Google