sqlite表中的最大行数?

时间:2012-01-12 13:37:30

标签: android sqlite limit

sql lite表是否存在一些行限制? 我的应用程序在该表有超过6000行时给出错误“没有这样的表x ...”。 低于6000行,不要给出任何错误。

谢谢。

这是查询。

    db = (new DatabaseHelper(this)).getWritableDatabase();

    cursor = db.rawQuery("SELECT continentes._id, continentes.ContinenteID, continentes.Continente" 
            + " FROM continentes"
            + " WHERE continentes.Continente LIKE ?"
            + " GROUP BY continentes.ContinenteID, continentes.Continente ORDER BY continentes.Continente",
                new String[]{"%" + searchText.getText().toString() + "%"});

这是我创建表格的地方

@Override
public void onCreate(SQLiteDatabase db) {
    String s;
    try {
        Toast.makeText(context, "Creating Database", 2000).show();
        InputStream in = context.getResources().openRawResource(R.raw.continentes);
        DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
        Document doc = builder.parse(in, null);
        NodeList statements = doc.getElementsByTagName("statement");
        for (int i=0; i<statements.getLength(); i++) {
            s = statements.item(i).getChildNodes().item(0).getNodeValue();
            db.execSQL(s);
        }
    } catch (Throwable t) {
        Toast.makeText(context, t.toString(), 50000).show();

解决了!!!我只是想知道为什么我遇到这个问题。因为我使用Data创建和填充sql数据库的文件,不能超过1.2mb。所以,我把他们分开了,没有更多的问题。谢谢大家。

4 个答案:

答案 0 :(得分:7)

您可以获得limits of SQLite的标准信息,但这不会导致您的问题,因为限制实际上非常高。 (2到64的力量!)

您的问题很可能与您的应用程序插入记录和/或插入的记录类型有关。

您是否可以发布应用程序的一些代码以及它如何处理插入?阅读完毕后,我可以修改我的答案。

作为补充提示,请确保已设置:

Cursor myCursor = db.rawQuery("PRAGMA synchronous=OFF", null); 
myCursor.close();

因为这可能是improve the performance更大的批量插页。

答案 1 :(得分:6)

表中的最大行数

表中理论上的最大行数是2 ^ 64(18446744073709551616或大约1.8e + 19)。此限制无法访问,因为将首先达到14 TB的最大数据库大小。一个14 TB的数据库可以容纳不超过大约1e + 13行,然后只有在没有索引且每行包含非常少的数据的情况下。

从这里开始:http://www.sqlite.org/limits.html

答案 2 :(得分:1)

没有这样的限制,见下文:

它说:

表格中的最大行数

  

表中的理论最大行数为264   (18446744073709551616或约1.8e + 19)。此限制无法访问   因为将首先达到最大数据库大小为14太字节。   一个14TB的数据库可以容纳不超过大约1e + 13   行,然后仅当没有索引且每行包含时   数据非常少。

答案 3 :(得分:0)

最大行数为2 ^ 64。

这是limitation page