sql >> Databasteknik >  >> RDS >> PostgreSQL

Kan jag använda returvärdet för INSERT...RETURNING i en annan INSERT?

Du kan göra det från och med Postgres 9.1:

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

Under tiden, om du bara är intresserad av ID:t, kan du göra det med en trigger:

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. Hur man filtrerar poster med aggregatfunktion SUM

  2. Hur man kör fjärrjobb från IRI Workbench

  3. De fem bästa fördelarna med att migrera till Azure SQL Database

  4. Okänd kolumn i "fältlista"-fel på MySQL Update-fråga