sql >> Databasteknik >  >> RDS >> Oracle

Oracle:hur UPSERT (uppdatera eller infoga i en tabell?)

MERGE-satsen slår samman data mellan två tabeller. Genom att använda DUAL kan vi använda det här kommandot. Observera att detta inte är skyddat mot samtidig åtkomst.

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. Top-N-frågor och paginering i Oracle

  2. 3 sätt att hitta rader som innehåller små bokstäver i SQLite

  3. MySQL Show Grants för alla användare

  4. Hur man ansluter till SQL Server Default Instance och SQL Server Named Instances - SQL Server / TSQL självstudie del 2