sqlite批量插入数据,使用SQLiteStatement占位符 “replace into t1 (uid, name) values (?,?), (?,?), (?,?)” ,存在以下两个限制(需要同时满足):
- 单次插入数据条数不超过500条;
- 单条语句中占位符不超过999个;
否则,会提示以下错误“too many terms in compound SELECT”。
sqlite3.c
//复合SQL语句的最大项数
#ifndef SQLITE_MAX_COMPOUND_SELECT
# define SQLITE_MAX_COMPOUND_SELECT 500
#endif
//解析器接受的匹配符参数最大值
#ifndef SQLITE_MAX_VARIABLE_NUMBER
# define SQLITE_MAX_VARIABLE_NUMBER 999
#endif
参考:
http://www.oschina.net/translate/limits-in-sqlite-new