在大量使用 SQL Server
和 SQL 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/