Chaînage de plusieurs INSERT avec RETURNING dans PostgreSQL
Lorsque vous travaillez avec des structures de bases de données hiérarchiques, il est souvent nécessaire d'insérer des données dans plusieurs tables avec des dépendances. Dans PostgreSQL, une combinaison de CTE modifiant les données et de la clause RETURNING fournit une solution efficace.
Pour insérer une nouvelle ligne dans la table parent table1 et remplir les lignes pertinentes dans les tables enfants table2 et table3, suivez ces étapes :
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;
Décomposer le CTE Chaîne :
Avantages de l'utilisation de CTE de modification des 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!