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

PostgreSQLの単一のSQLで、親テーブルに1つの行を挿入し、次に子テーブルに複数の行を挿入するにはどうすればよいですか?

    PostgreSQLには、VALUESのそのような拡張された解釈があります 単独でサブクエリとして使用できるという条項。

    したがって、次の形式でクエリを表現できます:

    WITH new_invoice AS (
        INSERT INTO ...
        RETURNING id
    ),
    v(a,b,c,d) AS (values
      ($27,$28,$29,$30),
      ($31,$32,$33,$34),
      ...
    )
    INSERT INTO invoiceItems (invoice_id, name, qty, price, description)
     SELECT new_invoice.id, a,b,c,d FROM v, new_invoice;
    

    これは、new_invoiceのデカルト積を挿入することを前提としています。 および値。これは、new_invoiceの場合にほとんど意味があります。 実際には単一行の値です。



    1. 文字列のタイムゾーン対応日時?

    2. 階層クエリ-親と子の場所に属するレコードをカウントします

    3. MySQLにOdbcParameterを使用する方法は?

    4. android.content.res.Resources $ NotFoundException:文字列リソースID#0x2データベース