SQLite在复合SELECT中有太多术语

use*_*532 8 sqlite android

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

在db.exec(sql)之后我收到了这个错误:"复合SELECT(code1)中的术语过多;编译INSERT INTO时..."

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

Gir*_*hai 8

SQLITE_MAX_COMPOUND_SELECT 在运行时不能提高限制,

因此,您需要将插入分成每行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
Run Code Online (Sandbox Code Playgroud)

另请参阅在SQLite中插入多行