编译时出现 SQLite 语法错误:INSERT INTO
SQLite Syntax error while compiling: INSERT INTO
我在执行 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外的所有列都是"text",_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 was only introduced in sqlite 3.7.11 and chances are you are running on a device with older sqlite version.
我在执行 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外的所有列都是"text",_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 was only introduced in sqlite 3.7.11 and chances are you are running on a device with older sqlite version.