Utilisation du RETURNING multi-colonnes pour des insertions PostgreSQL efficaces
Dans le monde de la gestion des données, la possibilité d'effectuer plusieurs insertions avec un seul RETURNING Cette clause peut rationaliser les opérations et améliorer l’efficacité. Cet article explore les subtilités des opérations d'insertion multiple avec PostgreSQL 9.3, montrant comment insérer de manière transparente des données dans plusieurs tables enfants tout en récupérant l'ID nouvellement généré.
Le scénario implique trois tables :
La tâche à accomplir est d'insérer des données dans la table1 et remplissez simultanément les colonnes user_id de la table2 et de la table3 avec le user_id nouvellement généré.
Pour ce faire, nous employons Expressions de table communes (CTE) modifiant les données. Les CTE nous permettent de combiner plusieurs instructions SQL en une seule unité, rationalisant ainsi le processus d'insertion. Voici une description détaillée de la mise en œuvre du CTE :
WITH ins1 AS ( -- Insert into 'table1' INSERT INTO table1 (username, name, surname) VALUES ('johnee', 'john', 'smith') RETURNING user_id ), ins2 AS ( -- Insert into 'table2' with 'user_id' from 'ins1' INSERT INTO table2 (user_id, password) SELECT ins1.user_id, 'secret' FROM ins1 -- No need to return anything here ) INSERT INTO table3 (user_id, adress, city, phone) -- Insert into 'table3' with 'user_id' from 'ins1' SELECT ins1.user_id, ... FROM ins1 RETURNING user_id;
Détails clés de la mise en œuvre :
En résumé, l'utilisation de multi-insertion avec RETURNING dans PostgreSQL permet une insertion par lot unique sur plusieurs tables, réduire la complexité et optimiser les performances. Les CTE de modification des données constituent un moyen pratique d'y parvenir, offrant une solution hautement fiable et efficace pour les flux de travail complexes d'insertion de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!