sql >> データベース >  >> RDS >> PostgreSQL

トランザクションにSELECTを含める必要がありますか?

    短いバージョン:「状況によって異なります」。

    長いバージョン:

    読み取り-変更-書き込みサイクルを実行している場合は、トランザクション内にある必要があるだけでなく、SELECT ... FOR UPDATEも必要です。 後で変更する予定のレコード。そうしないと、書き込みが失われるリスクがあり、レコードを読み取ってから更新を書き込んだときの間に他の誰かが行った更新を上書きします。

    SERIALIZABLE トランザクション分離もこれに役立ちます。

    並行性と分離を本当に理解する必要があります。残念ながら、理解せずに単純で簡単な「Xを実行する」という答えは、関連するすべてのテーブルをロックしてすべてのトランザクションを開始することだけです。ほとんどの人はそれをしたくありません。

    tx分離ドキュメント 。同時psqlを試してみてください 競合状態と競合を作成するためのセッション(複数の端末)。



    1. RMANバックアップコマンド

    2. MariaDB JSON_EXTRACT()の説明

    3. ver.2 PyGreSQLエラー:from _pg import * ImportError:DLLのロードに失敗しました:指定されたモジュールが見つかりませんでした

    4. 書店アプリケーションのレコメンデーションシステム