Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Operasi UPSERT dalam Pangkalan Data Oracle?

Bagaimana untuk Melaksanakan Operasi UPSERT dalam Pangkalan Data Oracle?

Patricia Arquette
Patricia Arquetteasal
2025-01-20 21:39:10455semak imbas

How to Perform UPSERT Operations in Oracle Databases?

Lakukan operasi UPSERT dalam pangkalan data Oracle

Operasi UPSERT - gabungan kemas kini dan sisipan - mengubah suai data dalam jadual. Oracle tidak mempunyai pernyataan UPSERT yang berdedikasi, jadi persoalan timbul tentang bagaimana untuk mencapainya dengan cekap.

Penyelesaian: MERGE statement

Oracle menyediakan pernyataan MERGE, yang menggabungkan data dari satu jadual ke jadual yang lain. Ia membenarkan tiga operasi: masukkan, kemas kini dan padam. Dengan menggunakan jadual DUAL (mengandungi satu baris dan satu lajur), kita boleh mensimulasikan operasi UPSERT.

Contoh:

<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>

Penggunaan:

<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>

Output:

<code>A                      B
---------------------- ----------------------
10                     2
20                     1</code>

Pernyataan MERGE ini memastikan bahawa jika baris yang sepadan dengan kunci yang ditentukan (xa) wujud, baris tersebut dikemas kini jika tidak, baris baharu akan dimasukkan.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Operasi UPSERT dalam Pangkalan Data Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn