插入时出现SQLite错误

时间:2012-09-20 18:26:56

标签: android sqlite

我正在尝试将Android设备上的值插入到sqlite数据库中。

但有时会抛出以下错误:

android.database.sqlite.SQLiteException: near ",": syntax error: , while compiling: INSERT INTO sensor_event (created_at, updated_at, type, x, y, z, time) VALUES (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?)

不幸的是,我不知道为什么查询没有通过。还有其他人吗?

干杯,

戈登

2 个答案:

答案 0 :(得分:5)

您提供的内容不是有效的sqlite语法。 SQLite在单指令中对多个插入有一定的支持,但它的工作方式略有不同。请参阅here

如何生成查询以及在您的问题中有时意味着什么 - 对我来说,每次尝试这样的查询时都会出现错误。

重写您的查询:

INSERT INTO sensor_event
SELECT ? as created_at, ? as updated_at, ? as type, ? as x, ? as y, ? as z, ? as time
UNION SELECT ?, ?, ?, ?, ?, ?, ?
UNION SELECT ?, ?, ?, ?, ?, ?, ?
UNION SELECT ?, ?, ?, ?, ?, ?, ?
UNION SELECT ?, ?, ?, ?, ?, ?, ?
UNION SELECT ?, ?, ?, ?, ?, ?, ?

答案 1 :(得分:0)

SQLite允许自3.7.11版本以来的复合插入语句

Android从版本4.1开始使用3.7.11 如Boris Strandjev所述,早期版本将失败。

Android版本中的SQLite版本: Version of SQLite used in Android?