日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

merge用法linux,Merge用法

發布時間:2023/12/15 linux 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 merge用法linux,Merge用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.Merge語法:

MERGE [hint] INTO

[schema .] table [t_alias]USING[schema .] { table | view | subquery } [t_alias] ON ( condition )

WHEN MATCHED THENmerge_update_clause

WHEN NOT MATCHED THEN merge_insert_clause;

Normal

0

7.8 磅

0

2

false

false

false

EN-US

ZH-CN

X-NONE

2.merge可使用子句

update/insert/delete,三個子句可單獨使用,也可混用,如'

create table t1(name varchar2(10), amount number(12));

create table t2(name varchar2(10), amount number(12));

insert into t1 values ('a',100);

insert into t1 values ('b',200);

insert into t2 values ('a',30);

insert into t2 values ('c',40);

commit;

merge into t2

using t1

on (t1.name=t2.name)

when matched then

update set t2.amount=t1.amount+t2.amount

when not matched then

insert values(t1.name,t1.amount)

delete where (t2.name='a');

3. merge可加where條件語句,也可加delete子句,其中delete where子句必須放在最后

4. merge常見錯誤

1) 無法在源表中獲取一組穩定的行,MERGE INTO T2 USING T1 ON...的MERGE表達式中,如果一條T2記錄被連接到多條T1記錄,就產生了ORA-30926錯誤,故源表T1在on條件上取得的記錄必須是唯一的,但目標表可有多條對應記錄,且多行均被修改。

Normal

0

7.8 磅

0

2

false

false

false

EN-US

ZH-CN

X-NONE2)merge做delete時只能刪除目標表,不能刪除源表,不管delete where條件是目標表的列還是源表的列,最終都刪除對應的目標表記錄。

3)using條件子句是空值的情況:

-- 在t2不存在name='d'的數據時,下列語句并不會更新t2,因t中并沒有記錄!

merge into t2

using (select * from t2 where name='d') t

on (t.name=t2.name)

when matched then

update set t2.amount=100

when not matched then

insert values ('d',200);

-- 可改寫成如下:

merge into t2

using (select count(*) cnt from t2 where name='d') t

on (t.cnt<>0)

when matched then

update set t2.amount=100

when not matched then

insert values ('d',100);

總結

以上是生活随笔為你收集整理的merge用法linux,Merge用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。