在SQLite3中,我将存储一个非常长的字符串,如下所示:
string linkList = "www.blah.com,www.meh.com,www.hah.com";
肯定会超过255个字符,可能会超过1000个字符
列linkList
应该是varchar
,TEXT
还是其他内容来存储可能超过1000个字符的字符串
CREATE TABLE(uId INT PRIMARY KEY, linkList varchar);
用于linkList
列的最佳变量类型是什么?
答案 0 :(得分:29)
你应该use TEXT
。虽然,这与VARCHAR
:
如果声明的列类型包含任何字符串“CHAR”,“CLOB”或“TEXT”,则该列具有TEXT亲和性。请注意,VARCHAR类型包含字符串“CHAR”,因此分配了TEXT affinity
还有:
请注意,SQLite会忽略类型名称后面的括号中的数字参数(例如:“VARCHAR(255)”) - SQLite不会对字符串的长度施加任何长度限制(除了大的全局SQLITE_MAX_LENGTH限制) ,BLOB或数值。
答案 1 :(得分:22)
实际上,SQLite中的所有数据类型都无关紧要,所有数据都将存储为字符串。
您可以执行查询CREATE TABLE(uId INT PRIMARY KEY, linkList BlahBlahString);
没有任何错误。 SQLite中的数据类型仅适用于sql兼容性
答案 2 :(得分:4)
您有2个选择可以在String
SQLite
TEXT
类型 - SQLite支持非常长的文本(我不知道确切的数字,但我测试了 33000 char SQLite3)BLOB
类型:您可以使用BLOB
数据类型来保存长字符串。