Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Operasi UPSERT dalam Pangkalan Data Oracle?
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!