专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

有哪些方法可以避免重复的插入数据_数据库

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 14:28:56       共计:3626 浏览
mysql 缓存数据库,有哪些方法可以避免重复的插入数据?

简要说下三者的区别:

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

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:学数据库编程之前必须从C_数据库 | ·下一条:一般用哪些工具做大数据分析_数据库

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有