0

我正在尝试将 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 (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?)

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

干杯,

戈登

4

2 回答 2

5

您提供的不是有效的 sqlite 语法。SQLite 在一定程度上支持单指令中的多个插入,但它的完成方式略有不同。见这里

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

像这样重写您的查询:

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 ?, ?, ?, ?, ?, ?, ?
于 2012-09-20T18:36:49.437 回答
0

SQLite 从 3.7.11 版本开始允许复合插入语句

自 4.1 版以来,Android 使用 3.7.11,如 Boris Strandjev 所述,早期版本将失败。

android 版本中的 SQLite 版本: Android 中使用的 SQLite 版本?

于 2012-09-21T19:37:53.227 回答