Heim > Datenbank > MySQL-Tutorial > Wie führt man UPSERT-Operationen in Oracle-Datenbanken durch?

Wie führt man UPSERT-Operationen in Oracle-Datenbanken durch?

Patricia Arquette
Freigeben: 2025-01-20 21:39:10
Original
446 Leute haben es durchsucht

How to Perform UPSERT Operations in Oracle Databases?

UPSERT-Vorgang in der Oracle-Datenbank ausführen

Der UPSERT-Vorgang – eine Kombination aus Aktualisieren und Einfügen – ändert die Daten in der Tabelle. Oracle verfügt nicht über eine dedizierte UPSERT-Anweisung, daher stellt sich die Frage, wie dies effizient erreicht werden kann.

Lösung: MERGE-Anweisung

Oracle stellt die MERGE-Anweisung bereit, die Daten von einer Tabelle in eine andere zusammenführt. Es ermöglicht drei Vorgänge: Einfügen, Aktualisieren und Löschen. Durch die Verwendung einer DUAL-Tabelle (die eine einzelne Zeile und eine einzelne Spalte enthält) können wir eine UPSERT-Operation simulieren.

Beispiel:

<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>
Nach dem Login kopieren

Verwendung:

<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>
Nach dem Login kopieren

Ausgabe:

<code>A                      B
---------------------- ----------------------
10                     2
20                     1</code>
Nach dem Login kopieren

Diese MERGE-Anweisung stellt sicher, dass, wenn eine Zeile vorhanden ist, die mit dem angegebenen Schlüssel (xa) übereinstimmt, die Zeile aktualisiert wird, andernfalls wird eine neue Zeile eingefügt.

Das obige ist der detaillierte Inhalt vonWie führt man UPSERT-Operationen in Oracle-Datenbanken durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage