我正在尝试将大量记录插入到SQLite数据库中。如果我尝试使用sqlite3_exec C-API,我会收到上述错误。
代码如下所示:
ret = sqlite_exec(db_p,".import file.txt table", NULL, NULL, NULL);
我知道.import是命令行,但是你可以用任何方式做一个极小时间的极大插入记录。我已经阅读了之前的批量插入代码并尝试进行更改,但这些并未提供所需的结果。
在没有调用中间API的情况下,是否没有办法直接将字符串插入表中?
答案 0 :(得分:3)
.import很可能无法通过API获得。但是,加速插入是一件至关重要的事情:将它们包装在一个事务中。
BEGIN;
lots of insert statements here;
COMMIT;
如果没有这个,sqlite将需要在每次插入后写入文件以保持ACID原则。该事务让它以后批量写入文件。
答案 1 :(得分:0)
语法错误的答案很可能是,你的字符串没有用SQL语句中的引号括起来。