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

単一のクエリで2つのテーブルに挿入postgresql

    これは、共通テーブル式を変更するデータを使用して実行できます。

    with new_order as (
      insert into orders (id, date) values (1, current_date)
      returning id
    )
    insert into completedby (employee_id, order_id)
    values 
    ( 42 -- employee_id, 
      (select id from new_order)
    );
    

    最初の部分はordersに挿入されます テーブルに挿入されたIDを返します。次に、2番目の部分は、行をcompletedbyに挿入します。 既知のemployee_idを使用し、前のステップからorder_idを取得するテーブル。

    編集

    idの場合 ordersの列 テーブルはserialです 列であり、シーケンスに値を生成させたい場合は、それも実行できます:

    with new_order as (
      insert into orders (date) values (current_date)
      returning id
    )
    insert into completedby (employee_id, order_id)
    values 
    ( 42 -- employee_id, 
      (select id from new_order)
    );
    



    1. 接続をoracle.jdbc.OracleConnectionにキャストできません

    2. BadStoreでのSQLインジェクション

    3. Flask-Migrationを完了できません

    4. テーブルから挿入可能なSQL形式にすべてのデータをエクスポートするにはどうすればよいですか?