sql >> データベース >  >> RDS >> PostgreSQL

テーブルまたは列の名前を数値で始めることはできませんか?

    これは、元のSQL標準に基づいており、間接参照のいくつかのレイヤーを介して、最終的に識別子の開始に到達します。 ブロック。これはいくつかのものの1つですが、主に「単純なラテン文字」です。使用できるものは他にもありますが、すべての詳細を確認したい場合は、http://en.wikipedia.org/wiki/SQL-92にアクセスし、実際の標準へのリンクをたどってください(85ページ)

    数値以外の識別子の導入機能があると、実行のためにSQLをデコードするパーサーを作成するのが簡単かつ迅速になりますが、引用符で囲まれた形式でも問題ありません。

    編集:パーサーにとってなぜ簡単なのですか?

    パーサーの問題は、SELECTにあります。 -FROMよりもlist句 句。 select-listは、テーブルから選択された式のリストであり、これは非常に柔軟性があり、単純な列名と数値式を使用できます。次のことを考慮してください:

    SELECT 2e2 + 3.4 FROM ...
    

    テーブル名と列名が数字で始まる場合は、2e2です。 列名または有効な番号(e 形式は通常、数値リテラルで許可されます)、3.4 テーブル「3 "と列"4 "またはそれは数値3.4

    識別子というルールを持つ 単純なラテン文字(およびその他の特定のもの)で始まるということは、2e2を認識するパーサーを意味します 3.4と同じように、これが数値式になることをすばやく識別できます。

    数字の先頭文字を許可するスキームを考案することは可能ですが、これはさらにあいまいなルール(意見)につながる可能性があるため、このルールは優れたソリューションです。最初に数字を許可した場合は、常に引用符を付ける必要がありますが、これはおそらく「クリーン」ではありません。

    免責事項 、上記を少し簡略化し、コアレーション名を無視して短くしました。私はpostgresに完全には精通していませんが、OracleRDBのドキュメントとSQL仕様に対して上記の回答を再確認しました



    1. node-oracledbを使用してLDAPサーバーに接続するにはどうすればよいですか?

    2. ルームライブラリはアセットフォルダからデータベースをコピーできますか?

    3. 低い権限を持つPL-SQLを使用してOracleで列データ型を取得するにはどうすればよいですか?

    4. SQL Server(T-SQL)のすべてのデータベースメールメッセージのステータスを確認する