Merge (SQL)
Cet article ne cite pas suffisamment ses sources (mai 2026).
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.
Syntaxe
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.
Notes et références
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Merge (SQL) » (voir la liste des auteurs).
Liens externes
- Documentation du Merge pour DB2 z/OS
- Documentation du Merge d'Oracle 11g R2
- Documentation du Merge dans SQL Server 2012
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.
