java - 编译时 SQLite 语法错误 : INSERT INTO

标签 java android sqlite android-sqlite runtimeexception

<分区>

我在执行 AsyncTask 时收到此 RuntimeException:

Caused by: android.database.sqlite.SQLiteException: near ",": syntax error: , while compiling: INSERT INTO 'infrastructure' (lift,name,type,status,_id) VALUES ('2130837612','none','-','2130837600',0),('2130837612','none','-','2130837600',1),('2130837612','none','-','2130837600',2),('2130837612','none','-','2130837600',3),('2130837612','none','-','2130837600',4),('2130837612','none','-','2130837600',5)

除_id 外的所有列都是“文本”,_id 是一个整数和主键。

这是它崩溃的地方:

Cursor curtsr = db.rawQuery("SELECT COUNT(*) FROM 'Infrastructure'", null);
if (curtsr != null) {
    curtsr.moveToFirst();                      // Always one row returned.
    if (curtsr.getInt(0) == 0) {               // Zero count means empty table.
        String INSERT_INFRA_VALUES = "INSERT INTO 'Infrastructure' (lift,name,type,status,_id) VALUES ('2130837612','none','-','2130837600',0),('2130837612','none','-','2130837600',1),('2130837612','none','-','2130837600',2),('2130837612','none','-','2130837600',3),('2130837612','none','-','2130837600',4),('2130837612','none','-','2130837600',5)";
        db.execSQL(INSERT_INFRA_VALUES);
    }
    curtsr.close();
}

我找不到它崩溃的原因。

在线 SQLite lint 工具 https://sqliteonline.com/没有抛出任何错误。

最佳答案

Comma-separated multiple VALUES insert仅在 sqlite 3.7.11 中引入,您很可能在 device with older sqlite version 上运行.

关于java - 编译时 SQLite 语法错误 : INSERT INTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47000831/

相关文章:

java - 尝试在空对象引用上调用虚拟方法 - Android

android - DataBaseHelper 不获取 ListFragment 的上下文

android - 如何在警告对话框中放置搜索栏?

SQL选择具有唯一ID的不同

database - 从 sqlite3 迁移到 postgresql on Rails 3?

c# - Microsoft.Data.SQLite : Library e_sqlite3 not found

java - 如何为具有复合主键和外键的 oneToMany 关系创建 Hibernate 映射文件?

java - 使用 java 的 keystore 格式无效

java - 如何在另一个 Activity 中使用字符串数组

javascript - DOM 属性是否适用于 Phone Gap android?