Lorsque vous essayez de créer une table avec un nom tel que "15909434_user", vous rencontrez l'erreur "Table ou le nom de la colonne ne peut pas commencer par un chiffre." Cela soulève la question de savoir pourquoi cette convention existe.
Selon la documentation PostgreSQL, les noms d'objets dans la base de données suivent le « type de nom », ce qui nécessite qu'ils commencent par une lettre ou un trait de soulignement et soient constitués de caractères alphanumériques et des traits de soulignement par la suite.
Pour contourner cette restriction, des guillemets doubles peuvent être utilisés pour envelopper le nom de la table, le transformant en un « identifiant entre guillemets ». Cependant, il est important de noter que les guillemets doubles ne sont pas considérés comme faisant partie du nom et ne comptent pas dans la limite de 63 caractères.
La raison derrière cette convention découle des normes SQL d'origine. Le bloc « identifiant start » des normes précise qu'un identifiant doit avant tout commencer par une simple lettre latine. Cette règle simplifie le processus d'analyse pour les interpréteurs SQL.
Dans le cas de la clause SELECT-list, qui autorise à la fois les noms de colonnes simples et les expressions numériques, l'application de cette convention aide l'analyseur à différencier les deux. Par exemple, si les noms de table et de colonne pouvaient commencer par des chiffres, "2e2" pourrait être interprété à la fois comme un nom de colonne et une expression numérique valide.
En ayant pour règle selon laquelle les identifiants commencent par des lettres, l'analyseur peut rapidement discerner que « 2e2 » est une expression numérique et « 3.4 » est une valeur numérique, plutôt que des noms de tables ou de colonnes.
Lors de l'élaboration d'un schéma pour autoriser les caractères numériques principaux serait possible, cela pourrait entraîner des règles plus obscures et des complexités syntaxiques. La convention actuelle fournit une solution claire et simple au problème, garantissant une analyse efficace et évitant les ambiguïtés potentielles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!