起初我想了一个比较笨的办法,聪明的你可能已经想到了^_^,先用select语句查询是否存在重复,剔除到重复后在插入新数据。对于大批量数据的插入/更新,这的的确确是个笨办法。

后来想到用触发器做这个,效果不错,但为这么个简单的问题就动用触发器似乎也不合理喔。最后在查询手册的过程发现了一条语句可以很好地解决重复问题。

ON CONFLICTconflict-algorithm

conflict-algorithm::= ROLLBACK|ABORT|FAIL|IGNORE|REPLACE

这个是用在新建数据表的时候,如果是在插入或更新语句中使用就可以使用 OR 代替 ON Conflict。

例如: insert or ignore into table (fields) values (values);

或者干脆使用 replace into table (fields) values (values);

replace = insert or replace

很好地解决了更新/插入重复的问题^_^