在我的Android SQLite数据库查询中,我有一个INSERT INTO语句,后跟大约600('data1'),('data2')...标记,由代码生成。
在db.exec(sql)之后我收到此错误:“复合SELECT(code1)中的术语太多;编译INSERT INTO时...”
有没有办法增加这个限制?
答案 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