Top Qs
Chronologie
Chat
Contexte

Merge (SQL)

De Wikipédia, l'encyclopédie libre

Remove ads

La commande Merge en SQL est une instruction qui permet de mettre à jour ou insérer un ou plusieurs tuples dans une table (ou vue) d'une base de données relationnelle à partir de données sources, selon des conditions. Cette commande a été rajoutée dans le standard SQL:2003, et étendue dans le standard SQL:2008, et permet d'éviter des combinaisons d’instructions Insert, Update et Delete sur la table cible.


Remove ads

Syntaxe

Résumé
Contexte
MERGE INTO table_cible T                                                        -- table à modifier
   USING données_source S                                                       -- Listes des données sources
   ON (Conditions1)                                                             -- Condition de correspondance/jointure
   WHEN MATCHED THEN                                                            -- Si vrai
     UPDATE SET t.colonne1 = valeur1 [, t.colonne2 = valeur2 ...]               ---- Mise à jour
     DELETE WHERE (Conditions2)                                                 ---- ou Suppression sous condition
   WHEN NOT MATCHED THEN                                                        -- Si faux
     INSERT [ ( liste_colonnes) ] { VALUES ( liste_valeurs) | DEFAULT VALUES }  ---- Ajout

Une jointure droite externe (Right outer join) est effectuée entre la cible et la source. Si plusieurs tuples de la source correspondent à un même tuple de la cible alors une erreur est levée. Dans la syntaxe, Conditions1 représente la condition de jointure qui permet de définir si un tuple cible doit être ajouté ou mise à jour (ou supprimée si on est dans le cas de la Conditions2). Cela signifie que si un tuple source correspond selon la condition de jointure à un tuple de la table cible alors les instructions dans WHEN MATCHED THEN sont effectuées. Si un tuple source ne correspond pas à la condition de jointure alors les instructions dans WHEN NOT MATCHED THEN sont effectuées.

Les données sources peuvent provenir d'une table, d'une vue ou d'une sous requête.

Remove ads

Notes et références

Loading content...

Liens externes

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads