我在哪里可以找到有关PostgreSQL命名约定的详细手册?(表名与驼峰式命名、序列、主键、约束、索引等...)
我在哪里可以找到有关PostgreSQL命名约定的详细手册?(表名与驼峰式命名、序列、主键、约束、索引等...)
关于表名,大小写等方面的命名,普遍约定俗成的是:
大写字母
小写字母加下划线
例如:
UPDATE my_table SET name = 5;
这并非铁规,但我个人强烈推荐将 标识符使用小写。PostgreSQL在未加引号的情况下不区分大小写处理标识符(实际上会在内部转换为小写),在加引号时则区分大小写;许多人并不知道这个特殊规定。始终使用小写是安全的。无论如何,可以使用 camelCase
或 PascalCase
(或 UPPER_CASE
),只要保持一致:始终引用标识符或从不引用(包括模式创建!)。
我不了解其他约定或样式指南。替代键通常由序列生成(通常使用serial
宏),如果手动创建,请使用该命名约定为这些序列指定名称(tablename_colname_seq
)。
此外,请参阅一些讨论:此处,此处以及(有关通用SQL)此处,所有这些都提供了几个相关链接。
注:PostgreSQL 10引入了identity
列作为serial的符合SQL规范的替代品。
因为没有单一的风格或标准,所以实际上并没有正式的手册。
只要您了解标识符命名规则,您就可以使用任何想用的名称。
在实践中,我发现使用lower_case_underscore_separated_identifiers
更容易,因为不需要到处使用"Double Quote"
来保留大小写、空格等。
如果您想将表和函数命名为"@MyAṕṕ! ""betty"" Shard$42"
,您可以自由选择,尽管这样做会很麻烦。
需要理解的主要内容包括:
除非使用双引号,否则标识符会被转换为小写字母,因此MyTable
、MYTABLE
和 mytable
都是相同的东西,但"MYTABLE"
和"MyTable"
是不同的;
除非使用双引号:
SQL标识符和关键字必须以字母(a-z,还包括带有变音符号和非拉丁字母的字母)或下划线(_)开头。标识符或关键字中的后续字符可以是字母、下划线、数字(0-9)或美元符号($)。
如果您希望使用关键字作为标识符,则必须将其用双引号括起来。
实际上,我强烈建议您不要将关键字用作标识符。至少避免使用保留字。就因为您可以将表命名为"with"
并不意味着您应该这样做。
lower_case_underscore_separated_identifiers
更容易......最近,我听到有人把它叫做“蛇形命名法”。 - bvj