Android 插入时发生SQLite错误

Android 插入时发生SQLite错误,android,sqlite,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 (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?)

我正在尝试将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 (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?)
不幸的是,我不知道为什么查询没有通过。还有其他人吗

干杯


Gordon

您提供的不是有效的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 ?, ?, ?, ?, ?, ?, ?

您提供的不是有效的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 ?, ?, ?, ?, ?, ?, ?

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

Android从4.1版开始使用3.7.11 Boris Strandjev提到,早期版本将失败

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

Android从4.1版开始使用3.7.11 Boris Strandjev提到,早期版本将失败

android版本中的SQLite版本:

你所说的“有时”是什么意思,它偶尔起作用?它什么时候起作用,有什么不同?你能在你的问题中发表你的插入方法吗?当然可以。查询是自动生成的(插入了多少个条目)。查询有时会崩溃,但长度与崩溃无关。顺便说一句,在Android中对数据库方法进行了一些基准测试之后,我支持这样一种观点,即生成如此长的插入既容易出错,又比传统方法慢——你可以在这里查看我的代码:“有时”是什么意思,偶尔有用吗?它什么时候起作用,有什么不同?你能在你的问题中发表你的插入方法吗?当然可以。查询是自动生成的(插入了多少个条目)。查询有时会崩溃,然而,长度与崩溃无关。顺便说一下,在Android中对数据库方法进行了一些基准测试之后,我支持这样一种观点,即生成如此长的插入既容易出错,也比传统方法慢——您可以在这里查看我的代码:afaik sqlite目前支持前面提到的语法。然而,这个链接是相当有帮助的。我将尝试包括使用哪种语法的版本检查。使用哪种语法会有速度差异吗?@GordonHo-我个人不知道是否会有时间差异。事实上,被支持的语法对我来说也是新的。我很想看看你的调查结果。请将它们添加到线程中。我会这样做。希望我能设法在下周把它挤进去。同时,下面的链接也非常有用。android版本中的SQLite版本:afaik SQLite目前支持前面提到的语法。然而,这个链接是相当有帮助的。我将尝试包括使用哪种语法的版本检查。使用哪种语法会有速度差异吗?@GordonHo-我个人不知道是否会有时间差异。事实上,被支持的语法对我来说也是新的。我很想看看你的调查结果。请将它们添加到线程中。我会这样做。希望我能设法在下周把它挤进去。同时,下面的链接也非常有用。android版本中的SQLite版本: