67 votes

Quels sont les noms de table valides dans SQLite?

Quelles sont les combinaisons de caractères pour qu'un nom de table dans SQLite soit valide? Toutes les combinaisons de caractères alphanumériques (AZ, az et 0-9) constituent-elles un nom valide?

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

Qu'en est-il d'une combinaison de caractères alphanumériques avec des tirets "-" et des points ".", Est-ce également valable?

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

Je vous remercie.

89voto

Guffa Points 308133

Je n'ai pas trouvé de référence pour cela, mais les noms de table qui sont valides sans crochets doivent être des combinaisons alphanumériques ne commençant pas par un chiffre:

 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)
 

Avec des crochets, vous devriez pouvoir utiliser à peu près n'importe quoi comme nom de table:

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

28voto

Matthew Flaschen Points 131723

Tous ces éléments sont autorisés, mais vous devrez peut-être les citer 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 général, cependant, vous devriez vous en tenir à l'alphabet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X