我正在爬网一些网站,并将结果存储在sqlite中,因为我的爬网可能每个月重复一次,但是我不想将重复的结果存储在数据库中,该怎么办?
例如,我第一次
insert into tableName(A, B, C, D, E) values(a,b,c,d,e)
那么我的数据库将具有该记录,下次我对该网站进行爬网时,我会做同样的事情,但是我不想存储重复的结果,我能做的最好的方法是什么?
此外,如果我使用MySQL,该怎么办?
最佳答案
使用sqlite create your table with a UNIQUE constraint:
CREATE TABLE tableName (A INTEGER, B INTEGER, C INTEGER, D INTEGER, E INTEGER,
UNIQUE (A, B, C, D, E));
然后
INSERT OR IGNORE INTO tableName (A, B, C, D, E) values (a,b,c,d,e);
will only insert a new record if
(a,b,c,d,e)
is unique-即表tableName
中尚未存在。致add a UNIQUE index to an already existent table:
CREATE UNIQUE INDEX unique_idx on tableName(A, B, C, D, E);
或者,使用MySQL,create a table with a unique index:
CREATE TABLE tableName (A INT, B INT, C INT, D INT, E INT,
UNIQUE KEY unique_idx (A, B, C, D, E))
然后use INSERT IGNORE:
INSERT IGNORE INTO tableName (A, B, C, D, E) values (a,b,c,d,e)
致add a UNIQUE KEY index to an already existent table:
ALTER TABLE tableName ADD UNIQUE KEY unique_idx (A, B, C, D, E);
关于mysql - sqlite插入,而删除完全重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30697139/