PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak określić automatycznie wygenerowany klucz podstawowy używany jako klucz obcy dla innej tabeli?

Odpowiedź na pytanie 1:Użyj CTE modyfikujących dane i zwróć seryjny PK z RETURNING klauzula:

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;

Wymaga Postgresa 9.1 lub później.
Powiązane odpowiedzi z objaśnieniami i linkami:

  • Wstawiaj dane w 3 tabelach jednocześnie za pomocą Postgresa
  • Wartość sklepu PostgreSQL zwrócona przez RETURNING



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie row_to_json() z połączeniami zagnieżdżonymi

  2. Kompilowanie zapisywalnego rozszerzenia mongo_fdw w formacie binarnym instalacji PostgreSQL.

  3. Napraw uszkodzoną bazę danych postgresql

  4. Chmura Barmana – Część 2:Kopia zapasowa w chmurze

  5. org.postgresql.util.PSQLException:FATAL:przepraszam, już za dużo klientów