Postgres列别名是否有任何限制?

时间:2011-03-11 19:06:30

标签: sql postgresql column-alias

对于Postgres列别名的名称,在长度,包含非ASCII字符的能力等方面是否有任何限制?从版本8.1到现在,这些限制是否有任何变化?

2 个答案:

答案 0 :(得分:18)

a_horse_with_no_name说的是什么。通常,您可以通过将URL中的“current”替换为版本号来查看文档的某些早期版本。但是8.1的文档在手册存档中。

<强> 8.1

  

SQL标识符和关键字必须以字母开头(a-z,但也是   带变音符号和非拉丁字母的字母)或下划线   (_)。标识符或关键字中的后续字符可以是   字母,下划线,数字(0-9)或美元符号($)。注意   根据信函的标识符不允许使用美元符号   SQL标准,因此它们的使用可能会降低应用程序的可移植性。   SQL标准不会定义包含数字或关键字的关键字   以下划线开头或结尾,因此此表单的标识符为   以防止可能与未来标准的扩展发生冲突。

<强> 9.4

  

SQL标识符和关键字必须以字母开头(a-z,但也是   带变音符号和非拉丁字母的字母)或下划线   (_)。标识符或关键字中的后续字符可以是   字母,下划线,数字(0-9)或美元符号($)。注意   根据信函的标识符不允许使用美元符号   SQL标准,因此它们的使用可能会减少应用程序   便携。 SQL标准不会定义包含的关键字   数字或以下划线开头或结尾,因此标识符   形式是安全的,以防止可能与未来扩展的冲突   标准。

没有变化。

这是the current version of this documentation。在我写完这个答案后,可能已经改变了。

答案 1 :(得分:13)

列别名的规则与常规列名称的规则没有区别。

http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

  

SQL标识符和关键字必须以字母(a-z,但也包含带变音符号和非拉丁字母的字母)或下划线(_)开头。标识符或关键字中的后续字符可以是字母,下划线,数字(0-9)或美元符号($)。关键字和不带引号的标识符不区分大小写。

     

还有第二种标识符:分隔标识符或带引号的标识符。它是通过用双引号(“)括起任意字符序列而形成的。带引号的标识符可以包含任何字符,但代码为零的字符除外。