sqlite - sqlite 中的字符串存储大小

标签 sqlite

在大量使用 SQL ServerSQL Server Compact 之后,我最近开始使用 Sqlite。我目前正在 Sqlite 中创建表,并且注意到在定义字符串列时似乎不需要输入字符串长度限制。在 SQL Server 中,255 个字符的字符串数据类型定义如下:varchar(255)。在 SQL Server Compact 中,它的定义如下:nvarchar(255)

但是,在 Sqlite 中,似乎可以将列数据类型简单地定义为 text,而无需输入任何大小限制。有没有办法在 sqlite 中定义大小限制?或者这甚至没有必要?

最佳答案

SQLite 让你写 VARCHAR(255)NVARCHAR(255) ,但唯一相关的部分是 CHAR (它给出了“文本亲和性”列)。括号中的数字允许与标准 SQL 兼容,但会被忽略。

在 SQLite 中,几乎不需要字符串的长度限制,因为 (1) 它不会影响字符串在磁盘上占用的空间量,并且 (2) 没有任意限制 (除了 SQLITE_MAX_LENGTH )关于可以在 INDEX 中使用的字符串的长度.

如果您确实需要限制列中的字符数,只需添加一个约束,如 CHECK(LENGTH(TheColumn) <= 255) .

关于sqlite - sqlite 中的字符串存储大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17785047/

相关文章:

android - 使用 delete 时出现空指针异常

java - OneToMany 无法确定 SpringBoot/SQLite3 的类型

swift - 我似乎无法让外键在 SQLite.swift 中工作

sqlite - 如何确定 SQLite 数据库的数据库使用情况?

android - 如何在 SQLite 中将毫秒转换为日期

c# - 如何在数据库中存储稀疏 bool 向量?

Windows Phone 7.1 和 Windows Phone 8 上的 Sqlite

iphone - 核心数据生成空 SQLite 数据库

java - 在更新时升级部署的 Android 应用程序上的数据库

python - 使用 Python 和 SQL 在 SQL INSERT & "commit"之后未显示新行