首先,需要特別提醒大家,ON DUPLICATE KEY UPDATE 語法是MYSQL數據庫獨有。
ON DUPLICATE KEY UPDATE 語法的作用是:當insert一條語句的時候,如果發現該條記錄已在數據庫中存在,則使用Update更新相同記錄中部分字段。
用法:
現有一張user表,表結構以及表數據如下:
現在如果執行如下語句:
insert into user (user_id,user_name,age,address) values ( 1,"steven",12,"山東") ON DUPLICATE KEY UPDATE user_id=1,user_name="steven",age=12,address="山東";
我們首先看一下執行結果和執行過程
從結果和執行過程中我們會發現,mysql實際上影響了兩條記錄,而我們也會從這個更新語句中發現,當發現相同的主鍵語句的時候,會去執行後面的update的語句。而我們在這裏也看到,ON DUPLICATE KEY UPDATE語法很好的幫助我們解決了實際開發中數據合併的業務,當我們需要合併兩個人共同完成的業務時,我們可以是它很好的解決。同時,也保證在批量處理業務上的能夠更好的去執行,以往我們數據合併的時候,我們首先需要判斷兩表之間的數據差異,然後,在去更新,但是,現在我們可以直接使用它。不用在去手動判斷數據差異問題。