sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man bestämmer den automatiskt genererade primärnyckeln som används som främmande nyckel för en annan tabell

Svar på Q1:Använd datamodifierande CTE:er och returnera den seriella 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 senare.
Relaterade svar med förklaring och länkar:

  • Infoga data i 3 tabeller åt gången med Postgres
  • PostgreSQL-butiksvärde returneras av RETURNING



  1. Hur hälsosam är din SQL-server? Proaktiv databasövervakning är avgörande

  2. Hur tar man bort dubbletter på en MySQL-tabell?

  3. Navigera i SQL Server-felloggar

  4. Uppdatera med Join-fråga i Oracle