PostgreSQL的命名约定

我在哪里可以find有关PostgreSQL命名约定的详细手册? (表名与骆驼大小写,序列,主键,约束,索引等)

关于表名,案例等,stream行的惯例是:

  • SQL关键字: UPPER CASE
  • 名称(标识符): lower_case_with_underscores

例如 :

 UPDATE my_table SET name = 5; 

这不是写在石头上,但强烈build议小写的标识符 ,国际海事组织。 Postgresql在不引用时不区分大小写的处理标识符(实际上将它们折叠为内部小写),引用时区分大小写; 很多人都没有意识到这种特质。 总是使用小写字母,你是安全的。 无论如何,使用camelCase或者PascalCase (或者UPPER_CASE )是可以接受的,只要你是一致的:引用标识符总是或者永远不会(这包括模式创build!)。

我不知道更多的公约或风格指南。 代理键通常由一个序列(通常使用serialmacros)组成,如果您手工创build序列( tablename_colname_seq ),则可以方便地使用这些序列。

这里还有一些讨论, 这里和(对于一般的SQL) 这里都有几个相关的链接。

没有真正的手册,因为没有单一的风格或标准。

只要你明白标识符命名的规则,你可以使用任何你喜欢的。

在实践中,我发现使用lower_case_underscore_separated_identifiers更容易,因为没有必要在任何地方"Double Quote"来保存大小写,空格等。

如果你想命名你的表格和函数"@MyAṕṕ! ""betty"" Shard$42"你可以自由地做到这一点,尽pipe在任何地方input都是很"@MyAṕṕ! ""betty"" Shard$42"

主要的理解是:

  • 除非用双引号,否则标识符会被大小写为小写,所以MyTableMYTABLEmytable都是一样的,但是"MYTABLE""MyTable"是不同的。

  • 除非双引号:

    SQL标识符和关键字必须以字母(az,也包含带有变音符号和非拉丁字母的字母)或下划线(_)开头。 标识符或关键字中的后续字符可以是字母,下划线,数字(0-9)或美元符号($)。

  • 如果您希望将它们用作标识符,则必须加上双引号。

在实践中,我强烈build议您不要使用关键字作为标识符。 至less避免保留字。 仅仅因为你可以命名一个表"with"并不意味着你应该。