Android Sqlitestring的最大长度?

在提到这个问题时:

Android上的SQLite如何处理长string?

它说默认的SQLite存储在10亿。 这与实际的网站相同。

但是,正如这个人所说的那样,可能会less一些。 我想知道如果他们是一种方法来检查/这是什么价值?

谢谢!

  • 从SQLite数据库列获取最小值?
  • Android将图像保存到SQLite或SDCard或内存
  • 如何在android中创build数据库?
  • 在SQLite中使用AND和OR
  • 从SQLite获取所有行
  • JSON文件VS SQLite的Android
  • SQLite,如何获取数据库中的所有表名?
  • 糖的ORM只是不会创build表
  • 在运行时无法读取Android中的SQLite限制。 (SQLite在它的C API中有这个function ,但是Android不公开这个。)

    无论如何,我不知道任何已经减less了SQLite限制的Android厂商。 (通常,当他们在自己的应用程序中需要它时,或者当他们尝试优化时,他们会增加一些限制或启用某些选项,但是他们从不打算改变别的东西。)

    string或BLOB的最大长度

    SQLite中的string或BLOB中的最大字节数由预处理器macrosSQLITE_MAX_LENGTH定义。 这个macros的默认值是10亿(1亿或10亿)。 您可以在编译时使用如下命令行选项来提高或降低此值:

    -DSQLITE_MAX_LENGTH=123456789 

    当前的实现将只支持一个string或BLOB长度高达231-1或2147483647.一些内置的函数,如hex()可能会在这之前失败。 在安全敏感的应用程序中,最好不要尝试增加最大string和blob长度。 事实上,如果可能的话,最好将string和blob的最大长度降低到几百万的范围内。

    在部分SQLite的INSERT和SELECT处理过程中,数据库中每一行的完整内容都被编码为一个BLOB。 所以SQLITE_MAX_LENGTH参数也决定了一行中的最大字节数。

    http://www.sqlite.org/limits.html