问题描述
我有一个应用程序的 DAO 数据库。要删除数据库中的某些数据,我需要对某些查询使用 WHERE NOT IN 子句。
DAO接口代码如下:
@Query("DELETE FROM layer WHERE userId = :userId AND lid NOT IN (:layerIDs)")
fun deleteRedundant(userId: String,layerIds: List<String>)
但我得到如下错误:
E/AndroidRuntime: FATAL EXCEPTION: Defaultdispatcher-worker-2
Process: com.bytepace.dimusco.old,PID: 3870
E/AndroidRuntime: android.database.sqlite.sqliteException: too many sql variables (code 1 sqlITE_ERROR[1]):,while compiling: DELETE FROM layer WHERE userId = ? AND lid NOT IN (?,?,?)E/AndroidRuntime: at android.database.sqlite.sqliteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.sqliteConnection.acquirePreparedStatement(sqliteConnection.java:1372)
at android.database.sqlite.sqliteConnection.prepare(sqliteConnection.java:811)
at android.database.sqlite.sqliteSession.prepare(sqliteSession.java:590)
at android.database.sqlite.sqliteProgram.<init>(sqliteProgram.java:62)
at android.database.sqlite.sqliteStatement.<init>(sqliteStatement.java:33)
at android.database.sqlite.sqliteDatabase.compileStatement(sqliteDatabase.java:1637)
at androidx.sqlite.db.framework.FrameworksqliteDatabase.compileStatement(FrameworksqliteDatabase.java:64)
at androidx.room.RoomDatabase.compileStatement(RoomDatabase.java:341)
...
那个解决方案是否正确有效??
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)