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

Agnes ·
更新时间:2024-11-10
· 513 次阅读

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

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

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

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

准备

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

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

在这里插入图片描述

SQL 语法

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

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

# 忽略相同记录(IGNORE) INSERT IGNORE INTO table (field1,field2) VALUES ('value1','value2');

参数说明:

table:数据表 field1:字段1 field2:字段2 value1:字段值1 value2:字段值2 IGNORE :必须。关键字 例子

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

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

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

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


作者:王佳斌



数据 如果 数据库 Mysql

需要 登录 后方可回复, 如果你还没有账号请 注册新账号