Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle:как да UPSERT (актуализация или вмъкване в таблица?)

Инструкцията MERGE обединява данни между две таблици. Използването на DUAL ни позволява да използваме тази команда. Имайте предвид, че това не е защитено срещу едновременен достъп.

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. функция to_date със sysdate

  2. Добавете първичен ключ за автоматично увеличение към съществуващата таблица в oracle

  3. OracleDataSource срещу Oracle UCP PoolDataSource

  4. Вземане на запис с максимална дата

  5. SQL:изтрийте всички данни от всички налични таблици