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()
示例解釋:
這條語句意味著,如果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è)值,那么這條語句就會(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è)值,那么這條語句就會(huì)被忽略,不會(huì)插入數(shù)據(jù),也不會(huì)報(bào)錯(cuò)。
需要權(quán)限:insert、delete文章來源:http://www.zghlxwxcb.cn/news/detail-687718.html
影響行數(shù):2行? ?(先刪除,再新增)文章來源地址http://www.zghlxwxcb.cn/news/detail-687718.html
到了這里,關(guān)于mysql插入重復(fù)數(shù)據(jù)的三種處理方式(DUPLICATE、IGNORE、REPLACE )的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!