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

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

  1. mysql防止预约重号_mysql 防止重复插入唯一限制的数据

    一. insert ignore into 当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回.所以使用ignore请确保语句本身没有问题,否则也会被忽略掉.例如: INSERT ...

  2. MariaDB/MySQL防止重复插入相同记录:INSERT IGNORE或者REPLACE

    MySQL防止重复插入相同记录有2种常用的方法. 1 使用 INSERT IGNORE 使用 INSERT IGNORE 可以在插入具有相同主键的数据时不做重复插入. mysql> SELECT ...

  3. MySQL中怎么插入DateTime型的数据

    在遇到插入datetime时 格式时"xxxx-x-x";  问题就解决了啦!!! 同学插入时间值于oprTime字段(该字段为dateTime类型),insert失败,无论是加单 ...

  4. java list 合并 重复的数据_Java ArrayList合并并删除重复数据3种方法

    首页 > 基础教程 > 集合框架 > ArrayList类 Java ArrayList合并并删除重复数据3种方法 1. 通过List自带方法list.retainAll() Lis ...

  5. java中批次号_在一个批次中插入多笔记录的几种方法

    插入数据库方法很多,下面Insus.NET列举几种方法,看看你常用的是哪一种: 创建一张表: CREATE TABLE [dbo].[Network_Info] ( [ID] INT NOT NULL ...

  6. 用户ID生成唯一邀请码的几种方法

    文章目录 1.需求描述 2.需求分析 3.字符集 4.方法一:随机数+唯一性判断(不可逆) 5.方法二:Hash+唯一性判断(不可逆) 6.方法三:进制法(可逆) 7.方法四:进制法+扩散.混淆(可逆 ...

  7. mybatis批量更新数据三种方法效率对比

    探讨批量更新数据三种写法的效率问题. 实现方式有三种, 1> 用for循环通过循环传过来的参数集合,循环出N条sql,需要在db链接url后面带一个参数  &allowMultiQuer ...

  8. mybatis批量更新数据三种方法

    具体的可以参考下面链接: ​​​​​​mybatis批量更新数据三种方法效率对比_PreciousLife的博客-CSDN博客_mybatis 批量更新 此处说明下,若是使用for循环遍历方式,来生成 ...

  9. MySql避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UPDATE)

    本文章来给大家提供三种在mysql中避免重复插入记录方法,主要是讲到了ignore,Replace,ON DUPLICATE KEY UPDATE三种方法,各位同学可尝试参考. 案一:使用ignore ...

最新文章

  1. 【python】nuitka封装python
  2. python绘制灰度图片直方图-python数字图像处理实现直方图与均衡化
  3. 机器学习结构化学习模型_生产化机器学习模型
  4. 关于idea的git账号与电脑的git账号不一致的问题。已解决!
  5. video js 全屏时,遇到18:9的长屏幕时,画面被切割
  6. 设计模式笔记十九:备忘录模式
  7. mysql select 进阶_MySQL进阶_SELECT篇(一)
  8. java 原子long_java中long和double类型操作的非原子性探究
  9. ubuntu下开机自动运行脚本以及定时任务的处理
  10. Python程序员培训计划
  11. 一文读懂复权—不复权、前复权、后复权
  12. delphi 10.3 (一) 控件安装和使用
  13. 将格林尼治时间转日期格式
  14. STM32F7--->SDRAM
  15. 学习笔记——IPSec
  16. Maya---骨骼的创建
  17. Android系统分区备份与还原
  18. H5DS简单又强大的H5编辑器
  19. 矩阵求导解最小二乘问题
  20. gn编译webrtc介绍

热门文章

  1. node-rsa加密,java解密调试
  2. Microservices Reference Architecture - with Spring Boot, Spring Cloud and Netflix OSS--转
  3. sed命令详解--转
  4. 机器学习算法基础——线性回归
  5. 基因组与数据整合:DNA应用开发正在临近
  6. 逻辑回归评分卡分数映射
  7. 改变vim注释的颜色
  8. Spring JDBC-Spring事务管理之数据库事务基础知识
  9. Oracle优化07-分析及动态采样-直方图
  10. oracle 将查询出的数据加1-10_PostgreSQL数据库跨库访问