Mysql - 如果数据库表中的记录存在相同记录则不插入记录,反之插入。

【有重复的 唯一索引键 就忽略】

前言

最近这个需求是 php 接收前端数据,然后将数据存入数据库中,但相同记录不能存入。

查了查百度,都把简单的事情复杂化了,竟然还有先查询数据表再判断插入的方式(大拇指),通通不采纳,后来直接翻阅了 SQL 手册,最终使用 IGNORE 关键字来做这件事情。

根据设置了主索引 PRIMARY 的字段进行判断,如果字段相同则不做插入记录操作,反之插入。

准备

(1)一个数据库表,结构如下:
在这里插入图片描述
(2)必须设置 需要依靠此字段来判断记录是否相同的 主索引字段,我设置的如下:

假设,你设置 ID 为主索引,那么就会以 ID 作为判断字段,如果 ID 有相同的则不插入,反之插入。

在这里插入图片描述

SQL 语法

完成了以上准备工作,你就可以使用语句来测试了。

注意:使用后端语言或直接使用 SQL 命令执行测试都是可以的。

# 忽略相同记录(IGNORE)

INSERT IGNORE INTO table (field1,field2) VALUES ('value1','value2');

参数说明:

  1. table:数据表
  2. field1:字段1
  3. field2:字段2
  4. value1:字段值1
  5. value2:字段值2
  6. IGNORE :必须。关键字

例子

假设,我有一个 V 数据表,包含 A / B 两个字段,其中 A 字段设置了主索引。

INSERT IGNORE INTO V (A,B) VALUES ('哈哈','哈哈');

执行后,数据被插入到表中。

但是第二次再执行的时候,这条相同的数据不会被插入到表中,因为 A 字段已有了相同记录。

发布了278 篇原创文章 · 获赞 437 · 访问量 87万+

猜你喜欢

转载自blog.csdn.net/weixin_44198965/article/details/104728724