唯一索引键
就忽略】
前言
最近这个需求是 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 字段已有了相同记录。