Mysql中“Insert into xxx on duplicate key update”問題_MySQL教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:Mysql字符集設(shè)置指南
      在mysql客戶端與mysql服務端之間,存在著一個字符集轉(zhuǎn)換器。 character_set_client =gbk:轉(zhuǎn)換器就知道客戶端發(fā)送過來的是gbk格式的編碼 character_set_connection=gbk:將客戶端傳送過來的數(shù)據(jù)轉(zhuǎn)換成gbk格式 character_set_results=gbk: 注: 以上三個字符集可以使用s

      在看代碼的過程中碰到了這一用法,不太理解,google了一下。它的意義其實是如果在insert語句末尾制定了“on duplicate key update”語句的話,則當插入行會導致一個unique索引或者primary key中出現(xiàn)重復值,則執(zhí)行update中的語句,否則才插入新行。

      例如,如果列a被定義為unique,并且值為1,則下列語句有同樣的效果,也就是說一旦出入的記錄中存在a=1的情況,直接更新c = c + 1,而不執(zhí)行c = 3的操作。

      1. insert into table(a, b, c) values (1, 2, 3) on duplicate key update c = c + 1; 
      2.  
      3. update table set c = c + 1 where a = 1; 

      另外值得一提的是,這個語句知識mysql中,而標準sql語句中是沒有的。

       

      參考文章: http://www.ludou.org/insert-into-on-duplicate-key-update-for-multiple-items.html

      /***我相信,一旦你能將某個問題寫清楚,你一定弄懂了。所以我要努力地寫出來。 && It does not matter how slow as long as you do not stop***/

      分享:Mysql 常見問題匯總
      1、Mysql errono 1005 : 主外鍵不是完全一致 , 請檢查如下幾點: a、字段是否存在 b、類型是否一致(注意unsigned , powerdesign 生成問題) c、數(shù)據(jù)庫引擎是否一致 d、字符編碼是否一致 e、windows平臺下注意修改lower_case_table_names = 0, windows本身不區(qū)分文件大小

      來源:未知//所屬分類:MySQL教程/更新時間:2012-07-24
      相關(guān)MySQL教程