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

Postgresは、行数が制限を下回っている場合にのみ行を挿入します

    この問題は、ファントム読み取り として知られています。 :

    試してみてください

    BEGIN;
    SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
    INSERT INTO mytable (myvalue, mykey) SELECT 'randomvalue', 1 WHERE
        (SELECT COUNT(*) FROM mytable WHERE mykey = 1) < 5;
    END;
    

    トランザクション分離レベルは、カウントが5未満の場合にのみトランザクションが値を挿入することを保証します。




    1. SQL Serverのトランザクションログをどのようにクリアしますか?

    2. LaravelSailがデフォルトのデータベースを再構築

    3. BLOBOracle10gへの画像の挿入

    4. LinuxでMySQLデータベースのサイズを確認する方法