Maison >base de données >tutoriel mysql >Comment effectuer des opérations UPSERT dans les bases de données Oracle ?
Effectuer l'opération UPSERT dans la base de données Oracle
L'opération UPSERT - une combinaison de mise à jour et d'insertion - modifie les données dans la table. Oracle ne dispose pas d'une instruction UPSERT dédiée, la question se pose donc de savoir comment y parvenir efficacement.
Solution : instruction MERGE
Oracle fournit l'instruction MERGE, qui fusionne les données d'une table à une autre. Il permet trois opérations : insérer, mettre à jour et supprimer. En utilisant une table DUAL (contenant une seule ligne et une seule colonne), on peut simuler une opération UPSERT.
Exemple :
<code class="language-sql">create or replace procedure ups(xa number) as begin merge into mergetest m using dual on (a = xa) when not matched then insert (a,b) values (xa,1) when matched then update set b = b+1; end ups; /</code>
Utilisation :
<code class="language-sql">-- 创建必要的表 drop table mergetest; create table mergetest(a number, b number); -- 调用过程以执行UPSERT call ups(10); call ups(10); call ups(20); -- 验证结果 select * from mergetest;</code>
Sortie :
<code>A B ---------------------- ---------------------- 10 2 20 1</code>
Cette instruction MERGE garantit que si une ligne correspondant à la clé spécifiée (xa) existe, la ligne est mise à jour, sinon une nouvelle ligne est insérée.
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!