Add*_*dev 3 java sql sqlite android
我有一个包含 id 集合(sqlite Android)的表,以及我想要保留的 id 集合。
然后如果 toRetain = [1,2,3,4] 我创建一个执行:
DELETE FROM my_items WHERE _id NOT IN (1,2,3,4);
Run Code Online (Sandbox Code Playgroud)
但是如果要保留的项目的长度非常长,SQL 引擎会抛出异常:“SQL 变量太多”。由于子句不在,我不能以更小的步骤来完成。
我该如何解决?
我认为的一种解决方案是将所有 id 插入到一个临时表中,然后执行:
DELETE FROM my_items WHERE _id NOT IN (SELECT_id FROM items_to_delete);
Run Code Online (Sandbox Code Playgroud)
该解决方案是否正确且有效?
我想创建一个临时表或表变量,然后插入所有要保留的 ID。然后通过将主表与此临时或表变量连接来从主表中删除。
在这里我建议创建一个索引,如果你使用临时表也使用 NOT IN 的内部连接
归档时间: |
|
查看次数: |
2472 次 |
最近记录: |