SQLite在复合SELECT中有太多术语

时间:2014-08-12 06:41:21

标签: android sqlite

在我的Android SQLite数据库查询中,我有一个INSERT INTO语句,后跟大约600('data1'),('data2')...标记,由代码生成。

在db.exec(sql)之后我收到此错误:“复合SELECT(code1)中的术语太多;编译INSERT INTO时...”

有没有办法增加这个限制?

1 个答案:

答案 0 :(得分:8)

限制SQLITE_MAX_COMPOUND_SELECT cannot be raised at runtime

因此,您需要将插入分成每行500行的批次。这比每个查询插入一行更有效。例如,

BEGIN TRANSACTION
INSERT INTO tablename (data1,data2) VALUES ("data1","data2")
INSERT INTO tablename (data1,data2) VALUES ("data1","data2")
INSERT INTO tablename (data1,data2) VALUES ("data1","data2")
...
END TRANSACTION

另见Insert Multiple Rows in SQLite