Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle:Làm thế nào để UPSERT (cập nhật hoặc chèn vào bảng?)

Câu lệnh MERGE hợp nhất dữ liệu giữa hai bảng. Sử dụng DUAL cho phép chúng tôi sử dụng lệnh này. Lưu ý rằng điều này không được bảo vệ chống lại truy cập đồng thời.

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;
/
drop table mergetest;
create table mergetest(a number, b number);
call ups(10);
call ups(10);
call ups(20);
select * from mergetest;

A                      B
---------------------- ----------------------
10                     2
20                     1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. System.Data.OracleClient yêu cầu phần mềm máy khách Oracle phiên bản 8.1.7

  2. Hướng dẫn biểu mẫu và báo cáo cho Oracle 9i, Oracle 10g và Oracle 11g Developer Suite Forms

  3. Hàm NLS_COLLATION_NAME () trong Oracle

  4. ROWNUM hoạt động như thế nào trong truy vấn phân trang?

  5. Oracle PL / SQL:Ví dụ UTL_FILE.FCOPY