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

    文章

    3993

    浏览量

    67722
  • 源代码
    +关注

    关注

    96

    文章

    2953

    浏览量

    69641
  • MySQL
    +关注

    关注

    1

    文章

    897

    浏览量

    29216
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MySQL数据库使用

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

    labview插入数据MySQL数据库

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

    Mysql数据库的基本操作

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

    数据库插入查询删除操作教程

    数据库插入查询删除操作教程
    发表于 12-07 09:57 2次下载

    LabVIEW操作MySQL数据库编程实例

    LabVIEW操作MySQL数据库编程实例
    发表于 10-13 15:05 54次下载

    华为云数据库-RDS for MySQL数据库

    华为云数据库-RDS for MySQL数据库 华为云数据库作为华为云的一款数据库产品,它主要是以MyS
    的头像 发表于 10-27 11:06 2151次阅读

    有哪些不同的MySQL数据库引擎?

    数据库引擎是MySQL组件,可以处理SQL操作,例如从数据库创建、读取和更新数据MySQL中有
    的头像 发表于 04-03 16:38 1844次阅读

    MySQL数据库管理与应用

    讨论MySQL数据库的管理和应用。 管理MySQL数据库 在管理MySQL数据库之前,我们需要了
    的头像 发表于 08-28 17:15 1620次阅读

    mysql是一个什么类型的数据库

    强、易于使用和管理。在本文中,我们将详尽、详实、细致地介绍MySQL的功能、优势、架构、语法等方面。 一、MySQL的功能: 数据库管理:MySQL具备创建和管理
    的头像 发表于 11-16 14:43 2789次阅读

    MySQL数据库基础知识

    的基础知识,包括其架构、数据类型、表操作、查询语句和数据导入导出等方面。 MySQL 数据库架构 MyS
    的头像 发表于 11-21 11:09 1623次阅读

    mysql数据库基础命令

    MySQL是一个流行的关系型数据库管理系统,经常用于存储、管理和操作数据。在本文中,我们将详细介绍MySQL的基础命令,并提供与每个命令相关的详细解释。 登录
    的头像 发表于 12-06 10:56 1205次阅读

    数据库数据恢复—未开启binlog的Mysql数据库数据恢复案例

    mysql数据库数据恢复环境: 本地服务器,windows server操作系统 ,部署有mysql单实例,
    的头像 发表于 12-08 14:18 1842次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—未开启binlog的<b class='flag-5'>Mysql</b><b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复案例

    数据库数据恢复—MYSQL数据库ibdata1文件损坏的数据恢复案例

    mysql数据库故障: mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等
    的头像 发表于 12-09 11:05 1045次阅读

    数据库数据恢复—Mysql数据库表记录丢失的数据恢复流程

    Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、
    的头像 发表于 12-16 11:05 997次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—<b class='flag-5'>Mysql</b><b class='flag-5'>数据库</b>表记录丢失的<b class='flag-5'>数据</b>恢复流程

    MySQL数据库的安装

    MySQL数据库的安装 【一】各种数据库的端口 MySQL :3306 Redis :6379 MongoDB :27017 Django :8000 flask :5000 【二】
    的头像 发表于 01-14 11:25 857次阅读
    <b class='flag-5'>MySQL</b><b class='flag-5'>数据库</b>的安装