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

書き込み可能な共通テーブル式と複数の挿入ステートメント

    これをすべて1つのステートメントにまとめたい場合は、CTEを使用できます。

    with foo as (
          select * from ...
         ),
         b as (
          insert into bar
              select * from foo
              returning *
         )
    insert into baz
        select * from foo;
    

    注:

    • insertを含む列リストを含める必要があります 。
    • 列名は明示的に指定する必要があります select *の場合 。 2つのテーブルで列が一致しない可能性があるため、これは重要です。
    • 私は常にreturningを使用します updateを使用 /挿入 /削除 CTEで。これは通常の使用例です。たとえば、挿入からシリアルIDを取得できます。


    1. 関連するテーブルからグループごとの最大行を取得します

    2. MySQLに値を挿入するためのBashスクリプト

    3. php / mysqlの世界では、ストアドプロシージャは使用できませんか?

    4. javaからmysqlにデータベースを作成する