广告位联系
返回顶部
分享到

MySql如何不插入重复数据

Mysql 来源:互联网 作者:佚名 发布时间:2023-01-20 21:37:39 人浏览
摘要

向数据库的插入值时,需要判断插入是否重复,然后插入。 这种操作怎么提高效率 下面说说一些解决方案 1、insert ignore into 当插入数据时,如出现错误时,如重复数据,将不返回错误

向数据库的插入值时,需要判断插入是否重复,然后插入。

这种操作怎么提高效率

下面说说一些解决方案

1、insert ignore into

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

1

2

INSERT IGNORE INTO USER ( NAME )

VALUES ( '张三' );

这种方法很简单,但是有一种可能插入不是因为重复数据报错,而是因为其他原因报错的,也同样被忽略了~

2、on duplicate key update

当primary 或者 unique重复时,则执行update语句;
当update后为无用语句,如:id=id,错误不会被忽略。

1

2

3

INSERT INTO USER ( NAME )

VALUES ( '张三' )

ON DUPLICATE KEY UPDATE id = id;

这种方法有个前提条件,就是需要约束条件,即,主键或者唯一约束。

3、insert ... select ... where not exist

根据select的条件判断是否插入

1

2

3

INSERT INTO USER ( NAME )

SELECT '张三' FROM DUAL

WHERE NOT EXISTS (SELECT id FROM USER WHERE id = 1)

这种方法其实就是使用mysql的一个临时表的方式,但是里面使用子查询,效率会有影响,能不使用尽量避免。

4、replace into

如果存在 primary 或者 unique 相同的记录,则先删除再插入新记录。

1

REPLACE INTO USER SELECT 1, '张三' FROM USER

这种方法就是不管原来有没有相同的记录,都会先删除再插入。


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://www.cnblogs.com/lhns/p/16860804.html
相关文章
  • Mysql的SELECT语句与显示表结构介绍

    Mysql的SELECT语句与显示表结构介绍
    SELECT... 1 2 SELECT 1+1, 2+2;# 直接这样写相当于下面这句 SELECT 1+1, 2+2 FROM DUAL; # 这里DUAL:伪表 SELECT ... FROM 语法: SELECT 标识选择哪些字段(列)
  • MySql如何不插入重复数据
    向数据库的插入值时,需要判断插入是否重复,然后插入。 这种操作怎么提高效率 下面说说一些解决方案 1、insert ignore into 当插入数据时,
  • MYSQL统计逗号分隔字段元素的个数
    写SQL的时候会遇到如下的问题,统计如下表中project_id字段中id的个数。 company_id project_id 77 94882,214880,94881,154882,94871,94879 140 2890,2872,3178,4314,
  • MySQL事务的SavePoint简介及操作
    什么是SavePoint SavePoint是数据库事务中的一个概念, 可以将整个事务切割为不同的小事务, 可以选择将状态回滚到某个小事务发生时的样子,
  • mysql查看表大小的方法介绍
    1.查看所有数据库容量大小 1 2 3 4 5 6 7 8 select table_schema as 数据库, sum(table_rows) as 记录数, sum(truncate(data_length/1024/1024, 2)) as 数据容量(MB), sum(
  • MySQL不用like+%实现模糊查询

    MySQL不用like+%实现模糊查询
    我们都知道 InnoDB 在模糊查询数据时使用 %xx 会导致索引失效,但有时需求就是如此,类似这样的需求还有很多,例如,搜索引擎需要根基用
  • SQL通用语法以及分类图文介绍
    MySQL的启动和连接数据模型 MySQL的启动和停止 1.services.msc 2.命令行启停 启动:net start mysql80 停止:net stop mysql80 (命令行窗口以管理员权限打
  • mysql开启各种日志的方法
    以下日志开启均在mysql5.7.32进行测试 general_log general_log支持热开启,热关闭。开启general_log会记录所有操作mysql命令,所以会产生大量文件,
  • Mysql备份的几种方法教程
    1. mysqldump mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等
  • 深入了解MySQL中的慢查询
    一、什么是慢查询 什么是MySQL慢查询呢?其实就是查询的SQL语句耗费较长的时间。 具体耗费多久算慢查询呢?这其实因人而异,有些公司慢
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计