我有一个包含 id 集合(sqlite Android)的表,以及我想要保留的 id 集合。
然后如果 toRetain = [1,2,3,4] 我创建一个执行:
DELETE FROM my_items WHERE _id NOT IN (1,2,3,4);
但是如果要保留的项目的长度非常长,SQL 引擎会抛出异常:“too many SQL variables”。由于该子句不在,我不能以较小的步骤进行。
我该如何解决?
我认为一种解决方案是将所有 id 插入临时表中,然后执行:
DELETE FROM my_items WHERE _id NOT IN (SELECT_id FROM items_to_delete);
该解决方案是否正确有效?