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

別のINSERTでINSERT...RETURNINGの戻り値を使用できますか?

    Postgres 9.1以降でこれを行うことができます:

    with rows as (
    INSERT INTO Table1 (name) VALUES ('a_title') RETURNING id
    )
    INSERT INTO Table2 (val)
    SELECT id
    FROM rows
    

    それまでの間、IDのみに関心がある場合は、トリガーを使用して行うことができます:

    create function t1_ins_into_t2()
      returns trigger
    as $$
    begin
      insert into table2 (val) values (new.id);
      return new;
    end;
    $$ language plpgsql;
    
    create trigger t1_ins_into_t2
      after insert on table1
    for each row
    execute procedure t1_ins_into_t2();
    


    1. テーブルに影響を与えたSQLをログに記録するトリガーを作成しますか?

    2. AndroidフォンのSQLiteデータベースをサーバーのMySQLデータベースと同期する方法は?

    3. SQLServerのテーブル値関数を介してデータを挿入する

    4. JDBCで開いている接続をプログラムでチェックする