PostgreSQLの命名規則に関する詳細なマニュアルはどこにありますか? (テーブル名とキャメルケース、シーケンス、主キー、制約、インデックスなど)
テーブル名、ケースなどに関して、一般的な規則は次のとおりです。
UPPER CASE
lower_case_with_underscores
例 :
UPDATE my_table SET name = 5;
これは石では書かれていませんが、小文字の識別子についてのビットを強くお勧めします、IMO。 Postgresqlは、引用符が付いていない場合は大文字と小文字を区別せずに(実際には内部的に小文字に変換します)、引用符が付いている場合は大文字と小文字を区別して処理します。多くの人はこの特異性に気付いていません。常に小文字を使用すると安全です。とにかく、一貫性がある限り、camelCase
またはPascalCase
(またはUPPER_CASE
)を使用してもかまいません:識別子を常に引用するか、引用しないか(これにはスキーマの作成が含まれます!)。
私はこれ以上多くの規則やスタイルガイドを知りません。代理キーは通常、シーケンスから作成されます(通常は serial
マクロを使用)。手動で作成する場合は、これらのシーケンスの名前をそのまま使用すると便利です(tablename_colname_seq
)。
いくつかの議論も参照してください here 、 here および(一般的なSQLの場合) here 、すべて関連するリンクがあります。
単一のスタイルや標準が存在しないため、正式なマニュアルはありません。
識別子の命名規則 を理解している限り、好きなものを使用できます。
実際には、lower_case_underscore_separated_identifiers
を使用する方が簡単だと思います。なぜなら、ケースやスペースなどを保持するためにどこにでも"Double Quote"
する必要がないからです。
テーブルと関数に"@MyAṕṕ! ""betty"" Shard$42"
という名前を付けたい場合は、自由に入力できますが、どこにでも入力するのは大変です。
理解すべき主なものは次のとおりです。
二重引用符で囲まない限り、識別子は小文字に変換されるため、MyTable
、MYTABLE
、およびmytable
はすべて同じですが、"MYTABLE"
および"MyTable"
異なっています;
二重引用符で囲まれていない場合:
SQLの識別子とキーワードは、文字(a〜z、ただし発音区別符号と非ラテン文字を含む文字)またはアンダースコア(_)で始まる必要があります。識別子またはキーワードの後続の文字には、文字、アンダースコア、数字(0〜9)、またはドル記号($)を使用できます。
キーワードを識別子として使用する場合は、キーワードを二重引用符で囲む必要があります。
実際には、識別子として keywords を使用しないしないことを強くお勧めします。少なくとも予約語は避けてください。テーブルに"with"
という名前を付けることができるからといって、そうすべきだというわけではありません。