从我的理解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)
如INSERT语法下所述:
如果没有
IGNORE,复制表中现有UNIQUE索引或PRIMARY KEY值的行会导致重复键错误,并且语句将被中止.使用时IGNORE,仍未插入行,但未发出错误.
您需要在以下位置定义UNIQUE索引md5sum:
ALTER TABLE rss_feeds ADD UNIQUE INDEX (md5sum);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1832 次 |
| 最近记录: |