新建表格

CREATE TABLE `person` (

`id` int NOT NULL COMMENT '主键',

`name` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '姓名',

`age` int NULL DEFAULT NULL COMMENT '年龄',

`address` varchar(512) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '地址',

PRIMARY KEY (`id`) USING BTREE

) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

添加三条数据如下:

我们这边可以根据插入方式进行规避:

1. insert ignore

insert ignore 会自动忽略数据库已经存在的数据(根据主键或者唯一索引判断),如果没有数据就插入数据,如果有数据就跳过插入这条数据。

--插入SQL如下:

insert ignore into person (id,name,age,address) values(3,'那谁',23,'甘肃省'),(4,'我的天',25,'浙江省');

再次查看数据库就会发现仅插入id为4的数据,由于数据库中存在id为3的数据所以被忽略。

2. replace into

replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。

--插入SQL如下:

replace into person (id,name,age,address) values(3,'那谁',23,'甘肃省'),(4,'我的天',25,'浙江省');

首先我们将表中数据恢复,然后进行插入操作后发现id为3的数据发生了改变同时新增了id为4的数据。

3. insert on duplicate key update

insert on duplicate key update 如果在insert into语句的末尾指定了on duplicate key update + 字段更新,则会在出现重复数据(根据主键或者唯一索引判断)的时候按照后面字段更新的描述对该信息进行更新操作。

--插入SQL如下:

insert into person (id,name,age,address) values(3,'那谁',23,'甘肃省') on duplicate key update name='那谁', age=23, address='甘肃省';

首先我们将表中数据恢复,然后在进行插入操作时,发现id为3的数据发生了改变,进行了更新操作。

我们可以根据自己的业务需求进行方法的选择。

以上就是防止MySQL重复插入数据的三种方法的详细内容,更多关于防止MySQL重复插入数据的资料请关注我们其它相关文章!

本文标题: 防止MySQL重复插入数据的三种方法

本文地址: http://www.cppcns.com/shujuku/mysql/346517.html

mysql 禁止插入重复数据_防止MySQL重复插入数据的三种方法相关推荐

  1. mysql重复写入_MYSQL避免重复插入记录的三种方法

    方案一:使用ignore关键字 如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用: insert ignore into table_name(email ...

  2. 生成不重复的随机数的三种方法

    下面我以生成1-10之间的10个不重复的随机数为例介绍生成不重复的随机数的三种方法: 1,通过while循环来实现   通过while循环不停的生成随机数,直到生成一个不重复的为止,这种方法比较容易想 ...

  3. 重点归纳:SPOT数据下载、影像波段数据介绍、多光谱数据模拟真彩色的三种方法【转载整合】

    SPOT数据下载.影像波段数据介绍.多光谱数据模拟真彩色的三种方法 前言 课程大作业 红外波段 SPOT卫星参数 SPOT-1,2,3 SPOT-4 SPOT-5 SPOT-6,7 模拟真彩色的三种方 ...

  4. node.js中mysql批量插入更新的三种方法

    [背景]在项目中遇到一个批量插入数据的需求,由于之前写过的sql语句都是插入一个对象一条数据,于是去网上搜关键词 "sql批量插入"."mysql批量插入"等, ...

  5. python读csv最快方法_使用Python读写csv文件的三种方法

    Python读写csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 前言 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是 ...

  6. python读写csv文件方法总结_使用python读写CSV文件的三种方法

    Python读写csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 前言 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是 ...

  7. python调用cmd命令释放端口_详解python调用cmd命令三种方法

    目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码, ...

  8. python调用matlab函数_从 Python 调用 MATLAB 函数的三种方法

    0. 实验环境Ubuntu 16.04 Matlab R2015b 1. 借助于 mlab 库 安装方法非常简单,只需一行命令 sudo pip install mlab 即可. import num ...

  9. python 多因素方差分析_多因素方差分析估计平方和的三种方法

    在做多因素方差分析时,有三种方法计算平方和(以模型Y ~ A + B + A:B为例,即先输入A,再输入B,最后输入交互项A:B):Type Ⅰ Sums of Squares(Type1, sequ ...

  10. excel添加列下拉框票价_在Excel中制作下拉列表的三种方法

    下拉列表在Excel中的用途十分广泛.在Excel中制作下拉列表可以通过数据有效性.使用窗体控件和VBA控件工具箱中的组合框来制作.下面用一个具体的例子来进行说明(在文章结尾处可下载xls格式的示例文 ...

最新文章

  1. Paxos、Raft不是一致性算法/协议?
  2. C#一键显示及杀死占用端口号进程
  3. #HTTP协议学习# (八)拓展-HTTPS协议
  4. linux应用程序开发数据,《嵌入式linux应用程序开发详解》核心笔记
  5. 树莓派设置NTP同步
  6. SQL---------表的约束
  7. 什么样的男人才是最牛的男人
  8. 使用libcurl编写HTTP客户端的方法
  9. Python基础学习第一周
  10. android 数据存储之 Shared Preferences
  11. IOS多线程之NSThread
  12. Java中数据库模糊查询写法
  13. 【浅谈】日文的文本等出现乱码的情况以及解决办法
  14. 弹簧优化设计MATLAB,基于MATLAB的弹簧优化设计.pdf
  15. 几率大的多线程面试题(含答案)
  16. 计算机读不出光盘,光驱读不出光盘,小编教你电脑光盘不能被识别怎么解决
  17. 我们比任何时候都更接近梦想
  18. 正确卸载IE8并恢复IE6的两种方法
  19. FFmpeg基础: 视频裁剪
  20. 小红书怎么推广引流?怎么样在小红书上引流?

热门文章

  1. Boost在Linux和windows下的编译 32位 64位
  2. Hive _偏门常用查询函数(三)附带实例(Rank)
  3. C语言 realloc函数 带着内存游走的函数
  4. java安全编码指南之:对象构建
  5. JS中 window.location.search的作用
  6. linux在所有文件中查找某一个字符
  7. 多线程基础-常用线程方法(三)
  8. 洛谷——P1042 乒乓球
  9. QT Creator应用程序开发——信号与槽
  10. json python无效语法_在python中打开无效的json文件