91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中怎么實現無數據插入和有數據更新

發布時間:2021-07-24 16:04:44 來源:億速云 閱讀:273 作者:Leah 欄目:數據庫

MySQL中怎么實現無數據插入和有數據更新,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

語法格式如下所示。

insert ignore into table(col1,col2) values ('value1','value2');

比如,我們執行如下SQL語句向MySQL中插入數據。

insert ignore into user_info (last_name,first_name) values ('binghe','binghe');

這樣一來,如果表中已經存在last_name='binghe'且first_name='binghe'的數據,就不會插入,如果沒有就會插入一條新數據。

上面的是一種用法,也可以用 INSERT .... SELECT 語句來實現,這里就不舉例了。

分析標題題目

接下來,我們再來看標題中的題目,向MySQL中插入數據,存在就更新,不存在則插入。本質上數據表中還是需要存在唯一鍵,也就是唯一索引的。往往在面試中,面試官都會默許存在這些前置條件。

這里,有兩種方法可以實現這個效果。一種方法是結合INSERT語句和ON DUPLICATE KEY  UPDATE語句實現,另一種方法是通過REPLACE語句實現。

INSERT語句和ON DUPLICATE KEY UPDATE語句實現

如果指定了ON DUPLICATE KEY UPDATE,并且插入行后會導致在一個UNIQUE索引或PRIMARY  KEY中出現重復值,則執行UPDATE。例如,如果列a被定義為UNIQUE,并且包含值1,則以下兩個語句具有相同的效果:

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;

如果行作為新記錄被插入,則受影響行的值為1;如果原有的記錄被更新,則受影響行的值為2。

REPLACE語句實現

使用REPLACE的最大好處就是可以將DELETE和INSERT合二為一,形成一個原子操作。這樣就可以不必考慮在同時使用DELETE和INSERT時添加事務等復雜操作了。在使用REPLACE時,表中必須有唯一索引,而且這個索引所在的字段不能允許空值,否則REPLACE就和INSERT完全一樣的。在執行REPLACE后,系統返回了所影響的行數,如果返回1,說明在表中并沒有重復的記錄,如果返回2,說明有一條重復記錄,系統自動先調用了DELETE刪除這條記錄,然后再記錄用INSERT來插入這條記錄。

語法和INSERT非常的相似,如下面的REPLACE語句是插入或更新一條記錄。

REPLACE INTO users (id,name,age) VALUES(1, 'binghe', 18);

看完上述內容,你們掌握MySQL中怎么實現無數據插入和有數據更新的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

中山市| 益阳市| 修武县| 连云港市| 都江堰市| 柳江县| 辰溪县| 太湖县| 浮梁县| 阿拉善右旗| 嫩江县| 湟中县| 社旗县| 嘉峪关市| 惠东县| 榆树市| 马龙县| 桓台县| 垣曲县| 镇康县| 东宁县| 株洲市| 聂拉木县| 义乌市| 双峰县| 桐梓县| 云林县| 平遥县| 平湖市| 兴安县| 荆门市| 桂林市| 通许县| 芦溪县| 本溪市| 寻甸| 页游| 峨眉山市| 婺源县| 泰兴市| 勐海县|