sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan bestemmes den autogenererede primærnøgle, der bruges som fremmednøgle til en anden tabel

Svar til Q1:Brug datamodificerende CTE'er og returner den serielle PK med RETURNING klausul:

WITH ins_main AS (
   INSERT INTO main(col1)
   VALUES ('some value 1')
   RETURNING main_id    
   )
, ins_submain AS (
   INSERT INTO submain (main_id, col2)
   SELECT main_id, 'some value 2'
   FROM   ins_main
   RETURNING submain_id
   )
INSERT INTO subsub (submain_id, col3)
SELECT submain_id, 'some value 3'
FROM   ins_submain;

Kræver Postgres 9.1 eller senere.
Relaterede svar med forklaring og links:

  • Indsæt data i 3 tabeller ad gangen ved hjælp af Postgres
  • PostgreSQL butiksværdi returneret af RETURNING



  1. Mysql - slet fra flere tabeller med én forespørgsel

  2. Generer_serier i Postgres fra start- og slutdato i en tabel

  3. Hvordan udfører du SQL fra et bash-script?

  4. SQL Server opdeler CSV i flere rækker