Heim > Datenbank > MySQL-Tutorial > Wie können die CTEs von PostgreSQL mehrere INSERTs mit RETURNING für Multi-Table-Updates effizient verarbeiten?

Wie können die CTEs von PostgreSQL mehrere INSERTs mit RETURNING für Multi-Table-Updates effizient verarbeiten?

Mary-Kate Olsen
Freigeben: 2025-01-02 14:05:40
Original
922 Leute haben es durchsucht

How Can PostgreSQL's CTEs Efficiently Handle Multiple INSERTs with RETURNING for Multi-Table Updates?

Mehrfaches INSERT...RETURNING für Multi-Table-Updates in PostgreSQL

Einfügen von Daten in mehrere untergeordnete Tabellen, während auf neu eingefügte Daten aus a verwiesen wird Der übergeordnete Tisch kann eine herausfordernde Aufgabe sein. In diesem Zusammenhang bietet PostgreSQL eine leistungsstarke Lösung mit datenmodifizierenden Common Table Expressions (CTEs).

Zunächst können wir die Benutzer-ID einer neu eingefügten Zeile in einer übergeordneten Tabelle mithilfe der RETURNING-Klausel abrufen:

INSERT INTO table1 (default,'johnee','john','smith',default) RETURNING userid;
Nach dem Login kopieren

Um die mehreren INSERTs durchzuführen, können wir datenmodifizierende CTEs wie folgt verwenden:

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;
Nach dem Login kopieren

In Mit diesem Code führt der ins1 CTE den INSERT in Tabelle1 durch und gibt die Benutzer-ID zurück. Der ins2-CTE verwendet dann die Benutzer-ID von ins1, um Daten in Tabelle2 einzufügen. Schließlich verwendet der dritte INSERT die Benutzer-ID von ins1, um Daten in Tabelle3 einzufügen, und gibt optional die resultierende Benutzer-ID zurück.

Durch die Verwendung von datenmodifizierenden CTEs können wir mehrere INSERTs effizient verketten und sicherstellen, dass die neu eingefügten Daten im untergeordneten Element gespeichert werden Tabellen pflegt die notwendigen Beziehungen zur übergeordneten Tabelle.

Das obige ist der detaillierte Inhalt vonWie können die CTEs von PostgreSQL mehrere INSERTs mit RETURNING für Multi-Table-Updates effizient verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage