tutorial servidor docs create sql sqlite3

servidor - sqlite tutorial



¿Cuáles son los nombres de tabla válidos en SQLite? (4)

¿Cuál es la combinación de caracteres para que un nombre de tabla en SQLite sea válido? ¿Son todas las combinaciones de alfanuméricos (AZ, az y 0-9) un nombre válido?

Ex. CREATE TABLE 123abc(...);

¿Qué pasa con una combinación de caracteres alfanuméricos con guiones "-" y puntos ".", ¿Eso también es válido?

Ex. CREATE TABLE 123abc.txt(...); Ex. CREATE TABLE 123abc-ABC.txt(...);

Gracias.


De la documentación de SQLite en CREATE TABLE , los únicos nombres prohibidos son aquellos que comienzan con sqlite_ :

Los nombres de tabla que comienzan con "sqlite_" están reservados para uso interno. Es un error intentar crear una tabla con un nombre que empiece por "sqlite_".


No he encontrado una referencia para ello, pero los nombres de tabla que son válidos sin usar corchetes a su alrededor deben ser cualquier combinación alfanumérica que no comience con un dígito:

abc123 - valid 123abc - not valid abc_123 - valid _123abc - valid abc-abc - not valid (looks like an expression) abc.abc - not valid (looks like a database.table notation)

Con corchetes, debería poder usar casi cualquier cosa como nombre de tabla:

[This should-be a_valid.table+name!?]


Per Clemens en la lista de correo de sqlite-users:

Todo está permitido, excepto nombres que comienzan con "sqlite_".

CREATE TABLE "TABLE"("#!@""''☺/", "");

Puede usar palabras clave ("TABLE"), caracteres especiales ("" #! @ "" ''☺ / ") e incluso la cadena vacía (" ").


Todo esto está permitido, pero puede que tenga que citarlos en "" .

sqlite> CREATE TABLE "123abc"(col); sqlite> CREATE TABLE "123abc.txt"(col); sqlite> CREATE TABLE "123abc-ABC.txt"(col); sqlite> select tbl_name from sqlite_master; 123abc 123abc.txt 123abc-ABC.txt

En general, sin embargo, debes apegarte al alfabeto.