sql >> データベース >  >> RDS >> Oracle

Oracle:UPSERTの方法(更新するか、テーブルに挿入しますか?)

    MERGEステートメントは、2つのテーブル間でデータをマージします。 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. SQL Server v.Next:STRING_AGGパフォーマンス、パート2

    2. CSVをphpmyadminにインポートする

    3. 日付の範囲をテーブルに入力するにはどうすればよいですか?

    4. MySQLサブクエリを操作する方法