mySQL INSERT IGNORE不会"忽略"

Stu*_*Cat 2 mysql

从我的理解INSERT IGNORE插入一个新条目,如果它尚不存在,如果它已经存在,忽略它.所以我一直试图这样做,但它似乎没有起作用.这是我的尝试:

insert insert ignore into rss_feeds (md5sum) values ("1234");
Query OK, 1 row affected (0.00 sec)

mysql> insert ignore into rss_feeds (md5sum) values ("1234");
Query OK, 1 row affected (0.00 sec)

mysql> insert ignore into rss_feeds (md5sum) values ("1234");
Query OK, 1 row affected (0.00 sec)

mysql> insert ignore into rss_feeds (md5sum) values ("1234");
Query OK, 1 row affected (0.00 sec)

mysql> select * from rss_feeds where md5sum="1234";
+------+--------+----------+---------+----------+--------+--------+---------+
| link | source | headline | updated | inserted | md5sum | itemid | emailed |
+------+--------+----------+---------+----------+--------+--------+---------+
| NULL | NULL   | NULL     | NULL    | NULL     | 1234   |   NULL |    NULL |
| NULL | NULL   | NULL     | NULL    | NULL     | 1234   |   NULL |    NULL |
| NULL | NULL   | NULL     | NULL    | NULL     | 1234   |   NULL |    NULL |
| NULL | NULL   | NULL     | NULL    | NULL     | 1234   |   NULL |    NULL | 
+------+--------+----------+---------+----------+--------+--------+---------+
4 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

egg*_*yal 8

INSERT语法下所述:

如果没有IGNORE,复制表中现有UNIQUE索引或PRIMARY KEY值的行会导致重复键错误,并且语句将被中止.使用时IGNORE,仍未插入行,但未发出错误.

您需要在以下位置定义UNIQUE索引md5sum:

ALTER TABLE rss_feeds ADD UNIQUE INDEX (md5sum);
Run Code Online (Sandbox Code Playgroud)