ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL防止重复插入唯一限制的数据 4种方法

2020-09-12 19:01:23  阅读:194  来源: 互联网

标签:name 重复 INTO 插入 books MySQL id


MySQL防止重复插入唯一限制的数据,下面我们逐一分析 :
1.insert ignore into 
当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回。所以使用ignore请确保语句本身没有问题,否则也会被忽略掉。例如: 
INSERT IGNORE INTO books (name) VALUES ('MySQL Manual') 
这种方法很简便,但是有一种可能,就是加入不是因为重复数据报错,而是因为其他原因报错的,也同样被忽略了~

2.on duplicate key update 
当primary或者unique重复时,则执行update语句,如update后为无用语句,如id=id,则同1功能相同,但错误不会被忽略掉。例如,为了实现name重复的数据插入不报错,可使用一下语句: 
INSERT INTO books (name) VALUES ('MySQL Manual') ON duplicate KEY UPDATE id = id 
这种方法有个前提条件,就是,需要插入的约束,需要是主键或者唯一约束。

3.insert … select … where not exist 
根据select的条件判断是否插入,可以不光通过primary 和unique来判断,也可通过其它条件。例如: 
INSERT INTO books (name) SELECT 'MySQL Manual' FROM dual WHERE NOT EXISTS (SELECT id FROM books WHERE id = 1) 
这种方法貌似写这很繁琐~

4.replace into 
如果存在primary or unique相同的记录,则先删除掉。再插入新记录。 
REPLACE INTO books SELECT 1, 'MySQL Manual' FROM books 
这种方法就是不管原来有没有相同的记录,都会先删除掉然后再插入

4种方法各有利弊,根据自己情况而定 来源:http://www.uncletoo.com/html/mysql/471.html

 

参考:https://www.cnblogs.com/nvsky/p/11083908.html

标签:name,重复,INTO,插入,books,MySQL,id
来源: https://www.cnblogs.com/yoyowin/p/13658017.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有