標籤:
在使用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語句實現有則更新無則插入