SQLite - 数据库文件停止增长

时间:2015-06-29 15:20:54

标签: c++ database sqlite

我在SQLite计算机上使用SRombauts SQLite Wrapper用于C ++和3.8.10.2版本Debian Jessie
我可以INSERTSELECT数据没有问题,但奇怪的是,数据库总是在56852480 bytes停止增长(我从ls -l database.db命令获得了这些信息)。

我想要完成的是将大(280'000行)csv文件的数据插入数据库。

嗯,这是我的代码的简化版本:

#include <iostream>
#include <csv.h> //small csv class of mine
#include <SQLiteCpp/SQLiteCpp.h>
#include <string>

int main()
{
    SQLite::Database db("database.db", SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE);
    db.exec("DROP TABLE IF EXISTS bernd");

    //simplified version of the table, there would be more columns
    db.exec("CREATE TABLE bernd(id INTEGER PRIMARY KEY, loads_of_data TEXT)");
    SQLite::Transaction tr;
    SQLite::Statement stmt("INSERT INTO bernd(loads_of_data) values(?)");

    Csv csv("file.csv");
    while(csv.getNext())
    {
        stmt.bind(1, csv.getValue("loads_of_data"));
        stmt.executeStep();
        stmt.reset();
    }
    tr.commit();
}

我知道我应该使用一些try{} catch{}块,但我想保持代码较小。

我阅读了一些关于SQLite限制的内容,但是对于这种情况设置了唯一一个显着的SQLITE_MAX_PAGE_COUNT,它的最大值没有任何区别。

这里发生了什么?似乎没有人遇到这个问题,我真的很困惑! 我们非常感谢您对正确方向的任何见解或暗示!

0 个答案:

没有答案