テーブル名と列名: PostgreSQL の命名規則
PostgreSQL では、テーブル名と列名は特定の命名規則に従います。そのような規則の 1 つは、これらの名前を数字で始めることができないということです。この制限は SQL-92 標準 (http://en.wikipedia.org/wiki/SQL-92 でアクセス可能) によって定義されており、識別子の先頭は単純なラテン文字である必要があると指定されています。
この名前付けこの規則はプログラミングの一般的な慣行とは異なる場合がありますが、この設計を選択する理由はいくつかあります。
識別子の開始特性
SQL では、識別子 (テーブル名と列名を含む) は最大 63 文字の文字列として定義されます。これらの文字列はラテン文字またはアンダースコアで始まり、後続の文字は文字、数字、またはアンダースコアである必要があります。
構文のあいまいさ
テーブル名と列名の開始が許可されている場合数字を使用すると、解析中にあいまいさが生じる可能性があります。次の例を考えてみましょう。
SELECT 2e2 3.4 FROM ...
このクエリでは、パーサーは 2e2 と 3.4 が列名を表すか数値式を表すか不確かになります。識別子が文字で始まると、曖昧さが排除され、パーサーは式を迅速に正しく識別できます。
設計の一貫性
識別子が文字で始まるという規則を強制することにより、 、SQL 標準により、解析と実行の一貫性が保証されます。先頭の数字文字が許可される場合、識別子と数値式を区別するために追加のルールが必要となり、複雑な解析アルゴリズムが発生し、可読性が低下する可能性があります。
二重引用符で囲まれた名前
デフォルトでは先頭の数字は使用できませんが、名前を二重引用符で囲むことで使用できます。これにより、標準の命名規則をオーバーライドする引用符で囲まれた識別子が作成されます。たとえば、テーブル名 15909434_user は二重引用符を使用して作成できます。
CREATE TABLE "15909434_user" ( ... )
二重引用符を使用すると柔軟性が高まり、次のような名前を作成できます。標準規約に準拠していない。ただし、引用符で囲まれた識別子は読みにくく、エラーが発生しやすい可能性があることに注意することが重要です。
以上がPostgreSQL のテーブルと列の命名規則は解析の曖昧さをどのように回避するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。