mysql插入重復(fù)數(shù)據(jù)的處理(DUPLICATE、IGNORE、REPLACE)
mysql插入重復(fù)數(shù)據(jù)的三種處理方式
1、插入或者更新 DUPLICATE
“INSERT ... ON DUPLICATE KEY UPDATE ”,
它是在插入操作時(shí),如果數(shù)據(jù)出現(xiàn)重復(fù),則更新重復(fù)數(shù)據(jù)的值。
示例:
INSERT INTO myf_deal_data ( `ID`, `PTNAME`, `PTDATA`, `OPERTIME`, `REPORTTIME` )
VALUES
( 111, '858_Ua', '219.1000', '2022-04-01 00:45:00', '2022-06-28 10:04:52' )
ON DUPLICATE KEY UPDATE PTDATA = '219.9000',REPORTTIME = NOW()示例解釋:
這條語(yǔ)句意味著,如果myf_deal_data表,存在id為111的數(shù)據(jù),那么就將更新PTDATA 和REPORTTIME 的值
需要權(quán)限:insert、update
影響行數(shù):2行
注意:多線程并發(fā)會(huì)導(dǎo)致死鎖的可能。
2、插入或者丟棄 IGNORE
“ INSERT IGNORE INTO .. VALUES ”的用法
是在插入操作時(shí),如果數(shù)據(jù)出現(xiàn)重復(fù),則忽略這個(gè)操作,不會(huì)報(bào)錯(cuò),但也不會(huì)插入重復(fù)的數(shù)據(jù)。
示例:
INSERT IGNORE INTO myf_deal_data ( `ID`, `PTNAME`, `PTDATA`, `OPERTIME`, `REPORTTIME` ) VALUES ? ? ( 111, '858_Ua', '219.1000', '2022-04-01 00:45:00', '2022-06-28 10:04:52' )?
示例解釋:
向myf_deal_data 表插入數(shù)據(jù),如果myf_deal_data 表的主鍵字段( ID 字段)已經(jīng)存在 111這個(gè)值,那么這條語(yǔ)句就會(huì)被忽略,不會(huì)插入數(shù)據(jù),也不會(huì)報(bào)錯(cuò)。
需要權(quán)限:insert
影響行數(shù):0行
3、插入或者替換 REPLACE
“ REPLACE INTO ... VALUES ”的用法
是在插入操作時(shí),如果不存在插入數(shù)據(jù),如果數(shù)據(jù)出現(xiàn)重復(fù),則更新數(shù)據(jù)(與DUPLICATE不同,需要的是insert、delete權(quán)限,是先刪除后新增)。
示例:
REPLACE INTO ?myf_deal_data ( `ID`, `PTNAME`, `PTDATA`, `OPERTIME`, `REPORTTIME` ) VALUES ? ? ( 58261907, '858_Ua', '219.1000', '2022-04-01 00:45:00', '2022-06-28 10:04:52' )?
示例解釋:
向myf_deal_data 表插入數(shù)據(jù),如果myf_deal_data 表的主鍵字段( ID 字段)已經(jīng)存在 111這個(gè)值,那么這條語(yǔ)句就會(huì)被忽略,不會(huì)插入數(shù)據(jù),也不會(huì)報(bào)錯(cuò)。
需要權(quán)限:insert、delete
影響行數(shù):2行 (先刪除,再新增)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL將時(shí)間戳轉(zhuǎn)換為年月日格式的實(shí)現(xiàn)
在我們的項(xiàng)目開發(fā)過程中,經(jīng)常需要將時(shí)間戳或日期時(shí)間字段轉(zhuǎn)換為特定的格式,本文主要介紹了MySQL將時(shí)間戳轉(zhuǎn)換為年月日格式的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-08-08
區(qū)分MySQL中的空值(null)和空字符('''')
這篇文章主要介紹了如何區(qū)分MySQL中的空值(null)和空字符(''),幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下2020-09-09
MySql數(shù)據(jù)庫(kù)自動(dòng)遞增值問題
這篇文章主要介紹了MySql數(shù)據(jù)庫(kù)自動(dòng)遞增值問題的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07
探究MySQL中索引和提交頻率對(duì)InnoDB表寫入速度的影響
這篇文章主要介紹了MySQL中索引和提交頻率對(duì)InnoDB表寫入速度的影響,作者通過實(shí)際測(cè)試運(yùn)行時(shí)間的對(duì)比來(lái)驗(yàn)證,需要的朋友可以參考下2015-05-05
MySQL學(xué)習(xí)筆記5:修改表(alter table)
我們?cè)趧?chuàng)建表的過程中難免會(huì)考慮不周,因此后期會(huì)修改表修改表需要用到alter table修改表語(yǔ)句,接下來(lái)詳細(xì)介紹,需要的朋友可以參考下2013-01-01
如何將Excel中的數(shù)據(jù)導(dǎo)入到MySQL
本文介紹三種將Excel數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)的方法:使用數(shù)據(jù)庫(kù)工具(如DBeaver)、SQL轉(zhuǎn)換CSV導(dǎo)入、及腳本代碼處理,涵蓋格式轉(zhuǎn)換、字段映射及工具兼容性注意事項(xiàng)2025-08-08
MYSQL必知必會(huì)讀書筆記第七章之?dāng)?shù)據(jù)過濾
這篇文章主要介紹了MYSQL必知必會(huì)讀書筆記第七章之?dāng)?shù)據(jù)過濾的相關(guān)資料,需要的朋友可以參考下2016-05-05
MySQL常見錯(cuò)誤有哪些_MySQL常見錯(cuò)誤的快速解決方法
MySQL常見錯(cuò)誤有哪些呢?下面小編就為大家?guī)?lái)一篇MySQL常見錯(cuò)誤的快速解決方法。現(xiàn)在分享個(gè)大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-03-03

