Mysql中“Insert into xxx on duplicate key update”問題_MySQL教程
推薦: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的操作。
- insert into table(a, b, c) values (1, 2, 3) on duplicate key update c = c + 1;
- 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ū)分文件大小
- MSSQL清空日志刪除日志文件
- 關(guān)于數(shù)據(jù)庫中保留小數(shù)位的問題
- 解析mysql與Oracle update的區(qū)別
- mysql 導入導出數(shù)據(jù)庫以及函數(shù)、存儲過程的介紹
- MySQL——修改root密碼的4種方法(以windows為例)
- 解決MYSQL出現(xiàn)Can''t create/write to file ''#sql_5c0_0.MYD''的問題
- 深入理解SQL的四種連接-左外連接、右外連接、內(nèi)連接、全連接
- 解析:內(nèi)聯(lián),左外聯(lián),右外聯(lián),全連接,交叉連接的區(qū)別
- mysql出現(xiàn)“Incorrect key file for table”處理方法
- mysql重裝后出現(xiàn)亂碼設(shè)置為utf8可解決
- 淺析一個MYSQL語法(在查詢中使用count)的兼容性問題
- 解析MySQL中INSERT INTO SELECT的使用
- 相關(guān)鏈接:
- 教程說明:
MySQL教程-Mysql中“Insert into xxx on duplicate key update”問題。