sql >> Database teknologi >  >> RDS >> Oracle

Oracle:hvordan UPSERT (opdater eller indsæt i en tabel?)

MERGE-sætningen fletter data mellem to tabeller. Brug af DUAL giver os mulighed for at bruge denne kommando. Bemærk, at dette ikke er beskyttet mod samtidig adgang.

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. PostgreSQL Incremental Backup og Point-In-Time Recovery

  2. Optimal måde at SLETTE specificerede rækker fra Oracle

  3. pt-query-digest-alternativer - MySQL-forespørgselsstyring og -overvågning med ClusterControl

  4. MySQL Preferred Engine – MyISAM eller InnoDB