好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > mysql 中 replace into 與 insert into on duplicate key update 的用法和不同點實例分析

mysql 中 replace into 與 insert into on duplicate key update 的用法和不同點實例分析

熱門標簽:鄭州網(wǎng)絡外呼系統(tǒng)價錢 電話機器人是電腦呼號嗎 博樂電銷機器人 機器人打電銷電話 400電話到哪辦理優(yōu)惠 云南大數(shù)據(jù)外呼系統(tǒng) 上海市三維地圖標注 南寧外呼系統(tǒng)招商 怎么更改高德地圖標注

本文實例講述了mysql 中 replace into 與 insert into on duplicate key update 的用法和不同點。分享給大家供大家參考,具體如下:

replace into和insert into on duplicate key update都是為了解決我們平時的一個問題

就是如果數(shù)據(jù)庫中存在了該條記錄,就更新記錄中的數(shù)據(jù),沒有,則添加記錄。

我們創(chuàng)建一個測試表test

CREATE TABLE `test` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
 `name` varchar(32) DEFAULT '' COMMENT '姓名',
 `addr` varchar(256) DEFAULT '' COMMENT '地址',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

向該表中插入一些數(shù)據(jù)

INSERT INTO test
VALUES
	(NULL, 'a', 'aaa'),
	(NULL, 'b', 'bbb'),
	(NULL, 'c', 'ccc'),
	(NULL, 'd', 'ddd');

影響行數(shù)4,結(jié)果如下:

我們運行如下語句:

REPLACE INTO test VALUES(NULL, 'e', 'eee');

結(jié)果顯示,影響行數(shù)1條,記錄被插入成功了

注意上面的語句,我們并沒有填寫主鍵ID。

然后我們再執(zhí)行下面的語句:

REPLACE INTO test VALUES(1, 'aa', 'aaaa');

結(jié)果顯示,影響行數(shù)2條,ID為1的記錄被更新成功了

為什么會出現(xiàn)這種情況,原因就是replace into會首先嘗試先往表里面插入記錄,因為我們的ID是主鍵,不可重復,顯然這條記錄是無法插入成功的,然后replace into會把這條已存在的記錄刪掉,然后再插入,所以會顯示影響行數(shù)是2。

我們再運行下面這條語句:

REPLACE INTO test(id,name) VALUES(1, 'aaa');

這里我們只指定id,name字段,我們來看看replace into后addr字段內(nèi)容是否還存在

顯然addr字段內(nèi)容沒有了,跟我們上面的分析是一致的,reaplce into先刪除了id為1的記錄,然后再插入記錄,但我們并沒有指定addr的值,所以會如上圖所示那樣。

 

但是有些時候我們的需求是,如果記錄存在則更新指定字段的數(shù)據(jù),原有字段數(shù)據(jù)仍保留,而不是上面所示的,addr字段數(shù)據(jù)沒有了。

這里就需要用到insert into on duplicate key update

執(zhí)行如下語句:

INSERT INTO test (id, name)
VALUES(2, 'bb') 
ON DUPLICATE KEY 
UPDATE 
name = VALUES(name);

VALUES(字段名)表示獲取當前語句insert的列值,VALUES(name)表示的就是'bb'

結(jié)果顯示,影響行數(shù)2條

如上圖所示,addr字段的值被保留了。

insert into on duplicate key update語句的做法是先插入記錄,如果不成功,則更新記錄,但是為什么影響的行數(shù)是2?

我們重新建一張表test2

CREATE TABLE `test2` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
 `sn` varchar(32) DEFAULT '' COMMENT '唯一鍵',
 `name` varchar(32) DEFAULT '' COMMENT '姓名',
 `addr` varchar(256) DEFAULT '' COMMENT '地址',
 PRIMARY KEY (`id`),
 UNIQUE KEY `sn` (`sn`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

往里面插入點數(shù)據(jù)

INSERT INTO test2
VALUES
	(NULL, '01', 'a', 'aaa'),
	(NULL, '02', 'b', 'bbb'),
	(NULL, '03', 'c', 'ccc'),
	(NULL, '04', 'd', 'ddd');

我們運行如下語句:

INSERT INTO test2 (sn, name, addr)
VALUES
	('02', 'bb', 'bbbb')
ON DUPLICATE KEY 
UPDATE 
name = VALUES(name),
addr = VALUES(addr);

結(jié)果如下:

每運行一次上面的語句,雖然影響行數(shù)為0,但表test2的自增字段就加1。

顯然如果insert into on duplicate key update語句僅僅只是在原記錄基礎上進行更新操作的話,自增字段是不會自動加1的,說明它也進行了記錄刪除操作。

先插入記錄,如果不成功,則刪除原記錄,但保留了除update語句后字段的值,然后把保留的值與需要更新的值合并,然后插入一條新記錄。

總結(jié):

replace into 與 insert into on duplicate key update都是先嘗試插入記錄,如果不成功,則刪除記錄,replace into不保留原記錄的值,而insert into on duplicate key update保留。然后插入一條新記錄。

更多關于MySQL相關內(nèi)容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數(shù)據(jù)庫鎖相關技巧匯總》

希望本文所述對大家MySQL數(shù)據(jù)庫計有所幫助。

您可能感興趣的文章:
  • mysql 的replace into實例詳解
  • MySQL replace into 語句淺析(二)
  • MySQL replace into 語句淺析(一)
  • MySQL中replace into語句的用法詳解
  • 淺析MySQL replace into 的用法
  • MySQL into_Mysql中replace與replace into用法案例詳解

標簽:寧夏 益陽 杭州 白銀 澳門 恩施 秦皇島 定西

巨人網(wǎng)絡通訊聲明:本文標題《mysql 中 replace into 與 insert into on duplicate key update 的用法和不同點實例分析》,本文關鍵詞  mysql,中,replace,into,與,insert,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關。
  • 相關文章
  • 下面列出與本文章《mysql 中 replace into 與 insert into on duplicate key update 的用法和不同點實例分析》相關的同類信息!
  • 本頁收集關于mysql 中 replace into 與 insert into on duplicate key update 的用法和不同點實例分析的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 久久五月色婷婷丁香六月综优物| a级毛片在线播放| 老牛影院在线精品免费观看网站 | 欧美黄色影院| 久久免费视频网| 天堂WWW在线无码免费| 亚洲精品第四页中文字幕| 亚洲精品线在线观看| 大吸野电影| 女呦视频一二三四区呦| 明撩暗恋| 国产亚洲va天堂va777| 女子初尝黑人第一次| 国产激情无码免费AV在线观看| 女攻男受调教打屁股高h| 后进极品美女圆润翘臀| 国产福利男女XXOO视频| 惠安县| 国产精品久久婷婷六月丁香| 国产毛片直播| 乳肉h女主荡| 空间军嫂富养六个军儿子| 日本hd娇小| 亚洲欧美在线观看一区二区| 哦┅┅快┅┅用力啊┅业绩| 99久久er热在这里都是精品99 | Xⅹⅹ欧美精品性受C0m| 性欧美videos另类视频| 非会员体验区试看60秒| nba98八度免费版| 阿娇13分钟视频无删减mp4 | 国模一区二区三区四区精品| 91欧美精品激情在线观看最新| 用力插好插到花心了| 亚洲一区二区中文字幕| 欧美肥妇BBwBBwBBW| 久久9966精品国产免费| 欧美亚洲不卡| 武则天一级毛片| 国产女人高潮抽搐视频免费观看| 漂亮的秘书伦理HD|