
infoDAO.deleteByInfoIds(ids);在 Android 开发中使用 Room 时执行上述代码时出现如下错误信息Caused by: android.database.sqlite.SQLiteException: too many SQL variables (code 1 SQLITE_ERROR): , while compiling: DELETE FROM Info WHERE infoId IN (?,?,?,?,?...问题原因SQLite 数据库参数数量超限导致的崩溃问题SQLite 数据库在编译 SQL 语句时对绑定参数?占位符的数量有硬性上限默认是 999 个SQLITE_MAX_VARIABLE_NUMBER参考文档https://sqlite.org/limits.html处理策略分批删除将大的 ID 列表拆分成多个小批次例如每批 500 个循环执行删除直到全部删完intbatchSize500;inttotalSizeids.size();for(inti0;itotalSize;ibatchSize){intendMath.min(ibatchSize,totalSize);ListIntegerbatchIdsids.subList(i,end);infoDAO.deleteByInfoIds(batchIds);}