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

PostgresのGetまたはCreateSQLクエリを作成する

    SQL DBMSでは、select-test-insertアプローチは間違いです。別のプロセスがselectの間に「欠落している」行を挿入することを妨げるものは何もありません。 およびinsert ステートメント。代わりにこれを行ってください:

    INSERT INTO mytable (color, brightness, size, age)
    SELECT color, brightness, size, age 
    FROM mytable
    WHERE NOT EXISTS (
        select 1 from 
        from mytable
        where color = 'X' and brightness = 'Y'
    );
    SELECT (color, brightness, size, age) 
    FROM mytable 
    WHERE color = 'X' AND brightness= 'Y';
    

    そのテキスト全体を単一の「クエリ」としてDBMSに渡すことができるはずです。ストアドプロシージャにすることを検討することをお勧めします。



    1. postgresqlタイムスタンプからstd::chrono値

    2. すべてのクエリにストアドプロシージャを使用しない理由はありますか?

    3. mysqlforphpで複数のsqldeleteクエリを実行します

    4. インデックス作成はどのように機能しますか