在使用了很多
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 中,几乎不需要对字符串进行长度限制,因为
SQLITE_MAX_LENGTH
中可使用的字符串长度没有任意限制(
INDEX
除外)。
CHECK(LENGTH(TheColumn) <= 255)
的约束即可。