Einfügen mehrerer Werte in untergeordnete Tabellen mithilfe von INSERT...RETURNING und CTEs von PostgreSQL
Zum Einfügen einer neu extrahierten Benutzer-ID aus der übergeordneten Tabelle Tabelle1 in seine untergeordneten Tabellen table2 und table3 bietet PostgreSQL eine elegante Lösung mit datenmodifizierenden Common Table Expressions (CTEs).
Mithilfe von CTEs können wir mehrere INSERT-Anweisungen verketten, um mehrere Vorgänge in einer einzigen Transaktion auszuführen:
WITH ins1 AS ( INSERT INTO table1 (username, name, surname) VALUES ('johnee', 'john', 'smith') RETURNING user_id ) , ins2 AS ( INSERT INTO table2 (user_id, password) SELECT ins1.user_id, 'secret' FROM ins1 ) INSERT INTO table3 (user_id, adress, city, phone) SELECT ins1.user_id, ... FROM ins1 RETURNING user_id;
Dieser Code folgt einem Schritt-für-Schritt-Prozess:
Schlüssel Punkte:
Das obige ist der detaillierte Inhalt vonWie können PostgreSQL-CTEs und INSERT...RETURNING Daten effizient in übergeordnete und untergeordnete Tabellen einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!