PostgreSQL的命名约定
我在哪里可以find有关PostgreSQL命名约定的详细手册? (表名与骆驼大小写,序列,主键,约束,索引等)
关于表名,案例等,stream行的惯例是:
- SQL关键字:
UPPER CASE
- 名称(标识符):
lower_case_with_underscores
例如 :
UPDATE my_table SET name = 5;
这不是写在石头上,但强烈build议小写的标识符 ,国际海事组织。 Postgresql在不引用时不区分大小写的处理标识符(实际上将它们折叠为内部小写),引用时区分大小写; 很多人都没有意识到这种特质。 总是使用小写字母,你是安全的。 无论如何,使用camelCase
或者PascalCase
(或者UPPER_CASE
)是可以接受的,只要你是一致的:引用标识符总是或者永远不会(这包括模式创build!)。
我不知道更多的公约或风格指南。 代理键通常由一个序列(通常使用serial
macros)组成,如果您手工创build序列( tablename_colname_seq
),则可以方便地使用这些序列。
这里还有一些讨论, 这里和(对于一般的SQL) 这里都有几个相关的链接。
没有真正的手册,因为没有单一的风格或标准。
只要你明白标识符命名的规则,你可以使用任何你喜欢的。
在实践中,我发现使用lower_case_underscore_separated_identifiers
更容易,因为没有必要在任何地方"Double Quote"
来保存大小写,空格等。
如果你想命名你的表格和函数"@MyAṕṕ! ""betty"" Shard$42"
你可以自由地做到这一点,尽pipe在任何地方input都是很"@MyAṕṕ! ""betty"" Shard$42"
。
主要的理解是:
-
除非用双引号,否则标识符会被大小写为小写,所以
MyTable
,MYTABLE
和mytable
都是一样的,但是"MYTABLE"
和"MyTable"
是不同的。 -
除非双引号:
SQL标识符和关键字必须以字母(az,也包含带有变音符号和非拉丁字母的字母)或下划线(_)开头。 标识符或关键字中的后续字符可以是字母,下划线,数字(0-9)或美元符号($)。
-
如果您希望将它们用作标识符,则必须加上双引号。
在实践中,我强烈build议您不要使用关键字作为标识符。 至less避免保留字。 仅仅因为你可以命名一个表"with"
并不意味着你应该。