sqlite表中的最大行数?

fil*_*oli 8 sqlite android 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() + "%"});
Run Code Online (Sandbox Code Playgroud)

这是我创建表的地方

@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();
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*sky 7

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

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

你可以发布一些应用程序的代码以及它如何处理插入?阅读完之后我可以修改我的答案.

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

Cursor myCursor = db.rawQuery("PRAGMA synchronous=OFF", null); 
myCursor.close();
Run Code Online (Sandbox Code Playgroud)

因为这可以真正改善较大的批量插件的性能.


jon*_*jon 6

表中的最大行数

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

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