国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

insert into … on duplicate key update / replace into 多行數據介紹

2024-07-24 12:48:02
字體:
來源:轉載
供稿:網友

場景是這樣的,我有KV型的表,建表語句如下:

復制代碼 代碼如下:

CREATE TABLE `dkv` (
  `k1` int(11) NOT NULL DEFAULT '0',
  `k2` int(11) NOT NULL DEFAULT '0',
  `val` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`k1`,`k2`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

數據大概是這樣的:

+----+----+-----------+
| k1 | k2 | val       |
+----+----+-----------+
|  1 |  1 | value 1-1 |
|  1 |  2 | value 1-1 |
|  1 |  3 | value 1-1 |
|  1 |  5 | value 1-1 |
|  1 |  7 | value 1-1 |
+----+----+-----------+

當我插入一條數據時,我要判斷(k1,k2)是否已經存在(1條selete),若存在就update,不存在就insert,這是一個典型的merge過程,雖然按照PK執行操作的速度非常快,但是畢竟SQL交互量上去了,如果我有100筆這樣的SQL,那這個開銷是很可觀的,有沒有什么一條SQL就能搞定的事情呢?

有兩種寫法:

第一種: insert into … on duplicate key update

復制代碼 代碼如下:

insert DELAYED into dkv 
values
(1,2,'new 12a'),
(1,3,'new 33ba'),
(1,4,'new 23222'),
(1,6,'new 12333'),
(1,8,'new vaaaa'),
(1,20,'new vaff'),
(1,25,'new vaff')
ON DUPLICATE KEY UPDATE val=VALUES(val);

第二種 replace into:

復制代碼 代碼如下:

replace into dkv 
values
(1,2,'new 12a'),
(1,3,'new 33ba'),
(1,4,'new 23222'),
(1,6,'new 12333'),
(1,8,'new vaaaa'),
(1,20,'new vaff'),
(1,25,'new vaff');

最終都能將數據改成這樣:

復制代碼 代碼如下:

+----+----+-----------+
| k1 | k2 | val       |
+----+----+-----------+
|  1 |  1 | value 1-1 |
|  1 |  2 | new 12a   |
|  1 |  3 | new 33ba  |
|  1 |  4 | new 23222 |
|  1 |  5 | value 1-1 |
|  1 |  6 | new 12333 |
|  1 |  7 | value 1-1 |
|  1 |  8 | new vaaaa |
|  1 | 20 | new vaff  |
|  1 | 25 | new vaff  |
+----+----+-----------+

您可能感興趣的文章:

INSERT INTO .. ON DUPLICATE KEY更新多行記錄深入mysql "ON DUPLICATE KEY UPDATE" 語法的分析Mysql中Insert into xxx on duplicate key update問題mysql #1062 –Duplicate entry ''1'' for key ''PRIMARY''mysql error:#1062 Duplicate entry ‘***′ for key 1問題解決方法mysql insert的幾點操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDATE )
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌鲁木齐县| 永城市| 凤庆县| 无锡市| 台北县| 民权县| 伊宁县| 铜陵市| 凌海市| 子长县| 遵化市| 滨海县| 建瓯市| 樟树市| 凌源市| 赤峰市| 常宁市| 隆昌县| 丹巴县| 柏乡县| 大足县| 东源县| 白河县| 肇源县| 赤城县| 辽阳市| 南漳县| 贵德县| 宣城市| 三亚市| 栾城县| 天台县| 东至县| 梅州市| 桃园市| 金华市| 牟定县| 德令哈市| 阿合奇县| 驻马店市| 镇康县|