文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL数据库中怎么避免写入重复数据

2024-04-02 19:55

关注

MySQL数据库中怎么避免写入重复数据,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

我们在 MySQL数据库进行表设计时,为了防止表中存在重复数据,我们通常会设置指定的字段为 主键索引(PRIMARY KEY)或者 唯一索引(UNIQUE KEY)索引来保证数据的唯一性。

如果我们设置了唯一索引,当在写入重复数据时,SQL 语句将无法执行成功,并抛出错误。

因此,我们通常在进行 MySQL数据库写入数据操作时,会考虑如何避免数据的重复写入或者因重复数据写入导致运行出错,抛出异常。

在 MySQL数据库中通常使用以下4种方式可以防止数据的重复写入。本文我们将以 user_basic_infor 表为例(建表SQL语句如下),分别分享如何使用这几种方式避免重复数据的写入。

MySQL数据库中怎么避免写入重复数据

insert ignore into

如上建表语句,在 user_basic_infor表中使用主键索引(PRIMARY KEY)以及唯一索引(UNIQUE KEY)确保数据具的唯一性,为避免重复写入数据可以使用 insert ignore into 语法,如下:

MySQL数据库中怎么避免写入重复数据

当使用 insert ignore 写入数据时,如果出现错误,如重复数据,将不返回错误,仅以警告形式返回。也就是 insert ignore 会忽略数据库中已经存在的数据,如果写入新数据后不会导致重复,那么写入新的数据,如果写入新数据后会导致重复,那么就跳过这行新数据。

需要注意的是,使用 insert ignore 时,请确保SQL语句本身没有问题,否则也将会被忽略掉。

on duplicate key update

同样,在 user_basic_infor表中使用主键索引(PRIMARY KEY)以及唯一索引(UNIQUE KEY)确保数据具的唯一性,为避免重复写入数据也可以使用 on duplicate key update 语法,如下:

MySQL数据库中怎么避免写入重复数据

如果在 insert 语句末尾指定了on duplicate key update ……,并且写入行后将导致在主键索引(PRIMARY KEY)或者唯一索引(UNIQUE KEY)中出现重复值时,则对重复值所在的行执行update ,如果不会导致唯一值列重复的问题,则写入该新行。

replace into

同样,在 user_basic_infor表中使用主键索引(PRIMARY KEY)以及唯一索引(UNIQUE KEY)确保数据具的唯一性,为避免重复写入数据也可以使用replace into 语法,如下:

MySQL数据库中怎么避免写入重复数据

replace 尝试把新行写入到表中,当如果写入数据的主键索引(PRIMARY KEY)以及唯一索引(UNIQUE KEY)出现重复,导致报错而造成写入失败时,会先从表中删除原有涉及到重复的行,然后再次尝试把新行写入到表中,这种方法就是无论原来有没有相同的数据,都会先删除再执行写入。

insert … select … where not exist ……

除此之外,在 MySQL数据库中,写入一条数据,我们可以先检查这条数据是否已经存在,当数据不存在时再执行写入操作,这样可以不只通过主键索引(PRIMARY KEY)或者唯一索引(UNIQUE KEY)来判断,也可通过其它条件,如下:

MySQL数据库中怎么避免写入重复数据

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯