En SQLite3 voy a almacenar una cadena muy larga que se parece a esto:
string linkList = "www.blah.com,www.meh.com,www.hah.com";
definitivamente excederá 255 caracteres, probablemente será más de 1000 caracteres
¿Debería la columna linkList ser un varchar, TEXT u otra cosa para almacenar una cadena que probablemente sea más larga que 1000 caracteres?
CREATE TABLE(uId INT PRIMARY KEY, linkList varchar);
¿Cuál sería el mejor tipo de variable para usar en la columna linkList?
Deberías usar TEXT
. Aunque, eso es lo mismo que VARCHAR
:
Si el tipo declarado de la columna contiene cualquiera de las cadenas "CHAR", "CLOB" o "TEXT", esa columna tiene afinidad de TEXTO. Tenga en count que el tipo VARCHAR contiene la cadena "CHAR" y, por lo tanto, se le asigna TEXT afinidad
Y también:
Tenga en count que los arguments numéricos entre paréntesis que siguen el nombre del tipo (ej: "VARCHAR (255)") son ignorados por SQLite – SQLite no impone ninguna restricción de longitud (que no sea el gran límite global de SQLITE_MAX_LENGTH) en la longitud de cadenas, BLOB o valores numéricos.
En realidad, todos los types de datos en SQLite no tienen importancia, todos los datos se almacenarán como cadenas. Puede ejecutar la consulta CREATE TABLE(uId INT PRIMARY KEY, linkList BlahBlahString);
sin ningún error El tipo de datos en SQLite es solo para compatibilidad con sql
Tienes dos opciones para almacenar una String
larga en SQLite
TEXT
tipo – SQLite admite text muy largo (no sé el número exacto pero probé 33000 caracteres SQLite3) BLOB
: puede usar el tipo de datos BLOB
para contener cadenas largas.