Oracle UPSERT : Techniques et mise en œuvre
Oracle ne prend pas en charge nativement les opérations UPSERT (mises à jour ou insertions simultanées basées sur des critères de correspondance). Cependant, plusieurs méthodes reproduisent efficacement cette fonctionnalité. Une approche courante et efficace utilise la déclaration MERGE
.
L'instruction MERGE
facilite la manipulation des données entre deux tables. L'utilisation de DUAL
comme table source fournit une implémentation UPSERT concise :
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;
Illustrons avec une table et des appels de procédure :
drop table mergetest; create table mergetest(a number, b number); call ups(10); call ups(10); call ups(20); select * from mergetest;
Cela donne :
<code>A B ---------------------- ---------------------- 10 2 20 1</code>
Comme indiqué, UPSERT basé sur MERGE
met à jour les enregistrements existants (correspondant à la clé) et en insère de nouveaux (clés non correspondantes). Cette méthode fournit un moyen propre et efficace de maintenir l’intégrité 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!