2015年12月16日 Oracle語句實現有則更新無則插入

來源:互聯網
上載者:User

標籤:

 在使用Oracle資料庫之前,我是用的是Mysql資料庫,知道Mysql資料庫實現有則更新,無則更新,是有一條語句的,

 但是Oracle實現此功能卻一時讓我頓感無措,但是我堅信oracle資料庫一定會提供此類語句。

 於是。。。

1)Oracle實現有則更新,無則插入

    使用MERGE INTO語句

    如下:已知傳過來的參數三個 userid 、name 、sex.要求如果使用者表(T_USER)中存在相同的userid則更新name和sex欄位,如果使用者表(T_USER)中不存在userid,則插入一條記錄

    MERGE INTO T_USER T1 

    USING(SELECT userid AS id,name AS username,sex AS usersex FROM dual) T2

    ON(T1.userid=T2.id)

    WHEN MATCHED THEN

    update set t1.name=t2.username,t1.sex=t2.usersex

    WHEN NOT MATCHED THEN

    insert(userid,name,sex) VALUES(t2.id,t2.username,t2.usersex);

 

2)Mysql實現有則更新,無則插入

    MYSQL需要實現以上功能,需要怎麼做呢?

    使用ON DUPLICATE KEY UPDATE語句

    已知傳過來的參數三個 id 、username 、usersex 它們的值分別為: 1   張三  男.

 

    INSERT INTO T_USER(userid,name,sex) VALUES (id,username,usersex) ON DUPLICATE KEY UPDATE name=username,sex=usersex;

 

    注意:如果在Mysql中使用這種形式,則要求在資料表中userid欄位必須是主鍵或建立了唯一的索引

 

   如須引用,請表明出處: http://www.cnblogs.com/anzhao/p/5050555.html 

 

2015年12月16日 Oracle語句實現有則更新無則插入

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.