De Table ou de colonne nom ne peut pas commencer avec le numérique?

J'ai essayé de créer une table nommée 15909434_user avec la syntaxe comme ci-dessous:

CREATE TABLE 15909434_user ( ... )

Il serait produite l'erreur de parcours. Puis, après que j'ai essayé d'avoir un peu de recherche avec google, j'ai trouvé un bon article ici qui décrivent:

Lorsque vous créez un objet dans PostgreSQL, vous donnez de l'objet par un nom. Chaque table a un nom, chaque colonne a un nom, et ainsi de suite. PostgreSQL utilise un seul type de données pour définir tous les noms d'objet: le name type.

Une valeur de type name est une chaîne de 63 caractères ou moins. Un nom doit commencer par une lettre ou un trait de soulignement; le reste de la chaîne peut contenir des lettres, des chiffres, et des caractères de soulignement.

...

Si vous trouvez que vous avez besoin de créer un objet qui ne respecte pas ces règles, vous pouvez mettre le nom entre guillemets doubles. L'enveloppant d'un nom entre guillemets crée un identificateur entre guillemets. Par exemple, vous pouvez créer une table dont le nom est "3.14159"—les guillemets sont nécessaires, mais ne sont pas réellement une partie du nom (qui est, ils ne sont pas stockées et ne comptent pas dans le 63 caractères maximum). ...

Ok, maintenant je sais comment résoudre ce problème par l'utilisation de cette syntaxe (en mettant des guillemets doubles sur le nom de la table):

CREATE TABLE "15909434_user" ( ... )

Vous pouvez créer la table ou de la colonne comme "15909434_user" et aussi user_15909434, mais ne peut pas créer de table ou de colonne le nom commence par numérique sans utiliser de guillemets doubles.

Alors, je suis curieux de connaître la raison derrière cela (sauf que c'est une convention). Pourquoi cette convention? Est-ce pour éviter quelque chose comme de la syntaxe de limitation ou d'une autre raison?

Merci d'avance pour votre attention!

OriginalL'auteur Wayan Wiprayoga | 2013-04-10