0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MySQL数据库:如何操作禁止重复插入数据

如意 来源:今日头条 作者:Java成长催化师 2020-10-08 14:15 次阅读

在MySQL进行数据插入操作时,总是会考虑是否会插入重复数据,之前的操作都是先根据主键或者唯一约束条件进行查询,有就进行更新没有就进行插入。代码反复效率低下。

新建表格

MySQL数据库:如何操作禁止重复插入数据

添加三条数据如下:

MySQL数据库:如何操作禁止重复插入数据

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

1. insert ignore

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

插入SQL如下: insert ignore into person (id,name,age,address) values(3,‘那谁’,23,‘甘肃省’),(4,‘我的天’,25,‘浙江省’);

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

MySQL数据库:如何操作禁止重复插入数据

2. replace into

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

插入SQL如下: replace into person (id,name,age,address) values(3,‘那谁’,23,‘甘肃省’),(4,‘我的天’,25,‘浙江省’);

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

MySQL数据库:如何操作禁止重复插入数据

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数据库:如何操作禁止重复插入数据

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据库
    +关注

    关注

    7

    文章

    3591

    浏览量

    63373
  • 源代码
    +关注

    关注

    95

    文章

    2929

    浏览量

    66064
  • MySQL
    +关注

    关注

    1

    文章

    775

    浏览量

    26006
收藏 人收藏

    评论

    相关推荐

    labview有调用mysql数据库问题????

    labview有调用mysql数据库,请问labview打包成exe安装档,怎么把mysql数据库打包进来,是mysql
    发表于 05-19 16:17

    【NanoPi M2试用体验】之基于QT图形界面编程操作MySQL数据库

    本帖最后由 zxl_zxl 于 2016-5-19 21:09 编辑 Nanopi M2试用体验之基于QT图形界面编程操作MySQL数据库在上一篇使用报告中,介绍了在Nanopi M2上安装
    发表于 05-19 21:04

    labview无法将中文写入mysql数据库

    这个问题刚刚出现,我没有很深入地去调查,可能是一个小问题而已。labview向Mysql数据库中写入数据时,英文、数字没问题,但是没有中文。也没有出现乱码,就是完全消失了。所以这也可能是
    发表于 12-17 00:02

    python实战数据库MySQL---4操作MySQL

    变量没有默认值,所以,每个空都要填写。实现数据库之前,需要实现数据MySQL的安装配置,这些网上到处是例程,大家自行参考。还有要先创建数据库“test”,可以用python,也可以用
    发表于 01-09 21:21

    mysql数据库设计步骤

    mysql数据库设计和优化
    发表于 05-13 11:00

    mysql数据库发展流程概述

    mysql数据库基础知识
    发表于 07-15 11:26

    mysql数据库跑在docker

    在docker中使用MySQL数据库
    发表于 08-15 14:26

    mysql数据库操作指南

    mysql数据库sql语句基础知识
    发表于 09-18 09:06

    Python操作Mysql实现数据库脚本的方法概述

    Python操作Mysql数据库脚本(cmd)
    发表于 10-08 10:44

    MySQL数据库使用

    关于MySQL数据库的简单操作
    发表于 10-24 14:32

    labview插入数据MySQL数据库

    最近在用labview写入数据MySQL数据库,遇到一个问题:(如图片所示)利用insert指令插入数据,为什么每次
    发表于 12-26 16:52

    mySQL数据库介绍

    mySQL数据库01
    发表于 06-04 14:36

    Mysql数据库的基本操作

    Mysql数据库入门-基本操作
    发表于 06-08 17:18

    源头开始呈现labview连接MYSQL数据库过程样本

    名字DB1的数据库,内含一个表格TB1,其中有两个字段id,age,插入数据(1,35);三、建立数据源控制面板---管理工具---ODBC数据
    发表于 09-25 16:25

    ESP8266如何连接mysql数据库

    各位大神,我试图用ESP8266 连接mysql ,将温湿度传感器的数据,写入数据库mysql数据库已建好,在局域网中的其他电脑也可以正常
    发表于 01-12 09:22