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

PHP:PGSQLドライバーとAutoCommit?

    まず、PostgreSQLにはAutoCommitモードがなく、PHPAPIのpg_*関数はAutoCommitモードをエミュレートしようとしません。

    pg_queryの doc 言う

    したがって、pg_query("UPDATE1 ..; UPDATE2...")が保証されます。 1つのトランザクションで実行され、データにオールオアナッシングの影響を及ぼします。

    シーケンス

    pg_query("BEGIN");
    pg_query("UPDATE1...");
    pg_query("UPDATE2..");
    pg_query("COMMIT");
    

    pg_query("UPDATE1 ..; UPDATE2...")と同等です データの整合性に関して(半完成状態は発生しません)。

    「明示的なBEGIN/COMMIT ...がない限り」という注記については、これらがSQLステートメントのチェーン全体の最初と最後にない場合にのみ関係します。つまり、pg_query("BEGIN; update1; update2; COMMIT;"); pg_query("update1; update2;")と同等です しかし(明らかに)pg_query("update1; COMMIT; update2;")と同等ではありません




    1. Djangoは、一括挿入/更新/削除時のデータベーストリガーの動作をエミュレートします

    2. 1つの列にnull以外の値を持つ最新のレコードを選択します

    3. CodeIgniter Select Query

    4. 警告:サーバーのID検証なしでSSL接続を確立することはお勧めしません