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

1つのテーブルから選択し、条件に基づいて他の2つのテーブルに挿入します

    これにはカーソルは必要ありません。plpgsqlも必要ありません。データ変更CTE これにより、単一のSQLステートメントでそれを実行できます。

    2つのプレーンな INSERTを実行するだけです。 ステートメント 。すべてまたは何も適用されていないことを確認したい場合は、それらをトランザクションに入れます:

    BEGIN;
    
    INSERT INTO B (col1, col2)
    SELECT col1, col2
    FROM   A
    WHERE  col_cond = 'something';
    
    INSERT INTO C (col1, col2)
    SELECT col1, col2
    FROM   A
    WHERE  col_cond IS DISTINCT FROM 'something';
    
    COMMIT;
    


    1. SQL ALTER DATABASE構文–DBMSによってリストされます

    2. 外部キーを介したテーブル内のレコードへの参照のカウント

    3. symfony:ベーステーブルまたはビューはすでに存在します:1050テーブル'migration_versions'はすでに存在します

    4. PerconaXtraDBクラスターを8.0にアップグレードするためのヒント