Mysql 几种常见的插入 Insert into,Replace Into,Insert ignore
程序员文章站
2022-07-05 17:05:21
简要说下三者的区别:insert into 最普遍的插入,如果表中存在主键相同的数据,执行会报错。 replace into 如果表中存在主键相同的数据则根据主键修改当前主键的数据,反之则插入(存在就修改,反之插入) insert ignore 如果表中存在主键相同的数据不在插入该条数据,反之则插入 ......
简要说下三者的区别:insert into 最普遍的插入,如果表中存在主键相同的数据,执行会报错。
replace into 如果表中存在主键相同的数据则根据主键修改当前主键的数据,反之则插入(存在就修改,反之插入)
insert ignore 如果表中存在主键相同的数据不在插入该条数据,反之则插入(存在则忽略,反之插入)
测试:
1.新增一张测试表 并预置数据
CREATE TABLE `insert_text` ( `id` varchar(50) NOT NULL, `value` varchar(50) DEFAULT NULL , `memo` varchar(50) DEFAULT NULL , PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `insert_text` (`id`, `value`, `memo`) VALUES ("1", "2", "3");
2.检测replace into执行效果
(1)执行语句(该语句的ID与预置数据的ID相同):
REPLACE INTO `insert_text` (`id`, `value`, `memo`) VALUES ('1', 'replace', 'replace');
执行结果:
(注意:这里返回的受影响行数为2,所以在统计插入数据成功的条数需注意下)
(2)执行语句(该语句的ID与预置数据的ID不同):
REPLACE INTO `insert_text` (`id`, `value`, `memo`) VALUES ('2', 'replace', 'replace');
执行结果:
在这里因为主键不同,可以理解为执行了insert into
3.检测insert ignore执行效果:
(1)执行语句(该语句的ID与预置数据的ID相同):
INSERT IGNORE `insert_text` (`id`, `value`, `memo`) VALUES ('1', 'ignore', 'ignore');
数据未发生改变
(2)执行语句(该语句的ID与预置数据的ID不同):
INSERT IGNORE `insert_text` (`id`, `value`, `memo`) VALUES ('2', 'ignore', 'ignore');
在这里因为主键不同,可以理解为执行了insert into
好了,测试完成,需要根据不同的场景选择对应的插入方式----------------fillt
上一篇: VBR的部署
推荐阅读
-
mysql insert的几点操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDATE )
-
mysql数据库中插入数据INSERT INTO SET的优势
-
Mysql 几种常见的插入 Insert into,Replace Into,Insert ignore
-
mysql 中 replace into 与 insert into on duplicate key update 的用法和不同点实例分析
-
【MYSQL笔记2】复制表,在已有表的基础上设置主键,insert和replace
-
MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解_MySQL
-
mysql insert的几点操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDAT
-
MySQL中的insert ignore into, replace into等的一些用法总结_MySQL
-
mysql insert if not exists防止插入重复记录的方法_MySQL
-
INSERT IGNORE 与 INSERT INTO的区别_MySQL