2011-05-24 112 views
24

Soy nuevo en sqlite. Quiero saber el límite de tamaño máximo del tipo de datos varchar en sqlite?¿cuál es el límite máximo de tamaño del tipo de datos varchar en sqlite?

¿alguien puede sugerirme algo de información relacionada con esto? Busqué en el sitio sqlite.org y give the answer as:

P. ¿Cuál es el tamaño máximo de un VARCHAR en SQLite?

A. SQLite no impone la longitud de un VARCHAR. Puede declarar un VARCHAR (10) y SQLite estará encantado de permitirle poner 500 caracteres en él. Y mantendrá intactos los 500 caracteres: nunca trunca.

pero quiero saber el límite de tamaño máximo exacto del tipo de datos varchar en SQLite.

+0

También puede leer este http://www.sqlite.org/limits.html – taro

Respuesta

28

de http://www.sqlite.org/limits.html

longitud máxima de una cadena o BLOB

El número máximo de bytes en una cadena o BLOB en SQLite se define por el preprocesador macro SQLITE_MAX_LENGTH. El valor predeterminado de esta macro es 1 mil millones (1 mil millones o 1,000,000,000). Puede aumentar o reducir este valor en tiempo de compilación utilizando una línea de comandos opción de la siguiente manera:

-DSQLITE_MAX_LENGTH = 123456789 La implementación actual sólo apoyará una cadena o BLOB longitud hasta 231-1 o 2147483647. Y algunas funciones integradas de como hex() pueden fallar mucho antes de ese punto. En las aplicaciones sensibles a la seguridad es mejor no intentar aumentar la longitud máxima de cadena y longitud de . En el hecho de , puede hacer bien en reducir el cadena máxima y la longitud del blob a algo más en el rango de unos pocos millones si eso es posible.

Durante parte de INSERT de SQLite y procesamiento SELECT, la completa contenido de cada fila en la base de datos es codifica como una sola BLOB. Por lo tanto, el parámetro SQLITE_MAX_LENGTH de también determina el número máximo de bytes en una fila.

+1

Como referencia: suponiendo caracteres de 1 byte, esto es un poco menos que un GB. (O exactamente un GB, si la base 10 es cómo se miden los bits) –

+0

¿Cuántos caracteres se pueden almacenar en 1 byte en SQLite, exactamente? – renatov

+1

@renatov No creo que pueda medir en caracteres, depende de la codificación que use para la base de datos https://www.sqlite.org/datatype3.html y del carácter que se está ingresando. UTF-8, por ejemplo, puede tener entre 1 y 4 bytes por carácter, ya sea que ASCII solo use 1 http: // stackoverflow.com/questions/5290182/how-many-bytes-does-one-unicode-character-take –

Cuestiones relacionadas