Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle:jak UPSERT (zaktualizować lub wstawić do tabeli?)

Instrukcja MERGE scala dane między dwiema tabelami. Używanie DUAL pozwala nam na użycie tego polecenia. Pamiętaj, że nie jest to chronione przed równoczesnym dostępem.

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. SQL:usuń wszystkie dane ze wszystkich dostępnych tabel

  2. Czy istnieje lepszy operator Oracle do sprawdzania równości bezpieczny dla wartości null?

  3. Funkcja PL/SQL w Oracle nie widzi DBMS_AQ

  4. ORA-1114 Uruchamianie łaty danych

  5. Jak zainstalować program SQL Developer na komputerze Mac?