起初我想了一个比较笨的办法,聪明的你可能已经想到了^_^,先用select语句查询是否存在重复,剔除到重复后在插入新数据。对于大批量数据的插入/更新,这的的确确是个笨办法。
后来想到用触发器做这个,效果不错,但为这么个简单的问题就动用触发器似乎也不合理喔。最后在查询手册的过程发现了一条语句可以很好地解决重复问题。
ON CONFLICT conflict-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
很好地解决了更新/插入重复的问题^_^