テーブル名または列名を数値で始めることができないのはなぜですか?
PostgreSQL でテーブルや列などのオブジェクトを作成する場合、それらに名前を付けるために必要です。これらの名前は、数字で始めることができないという制限など、特定の基準を満たす必要があります。
制限の理由
この規則は、元の SQL 標準に由来しています。これは、識別子 (オブジェクト名を含む) が文字またはアンダースコアで始まる必要があることを指定します。この設計上の決定は、主に解析を簡素化するために行われました。
解析の課題
識別子の先頭に数字を使用できる場合、SQL 構文に曖昧さが生じます。たとえば、次の SELECT-list 句では:
SELECT 2e2 + 3.4 FROM ...
「2e2」がテーブル名を指しているのか数値式を指しているのかは不明であり、「3.4」は数値として解釈される可能性があります。またはテーブル名「3」と列名"4".
結論
この制限を適用すると、オブジェクト名と他の SQL 要素が明確に区別され、解析プロセスがより効率的かつ明確になります。これは小さな制限のように思えるかもしれませんが、SQL 言語内での一貫性と使いやすさを維持するのに役立ちます。この制限を回避するには、次の例に示すように、名前を二重引用符で囲むことができます。
CREATE TABLE "15909434_user" ( ... )
以上がPostgreSQL のテーブル名または列名を数字で始めることができないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。