对于Postgres列别名的名称,在长度,包含非ASCII字符的能力等方面是否有任何限制?从版本8.1到现在,这些限制是否有任何变化?
答案 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)或美元符号($)。关键字和不带引号的标识符不区分大小写。
还有第二种标识符:分隔标识符或带引号的标识符。它是通过用双引号(“)括起任意字符序列而形成的。带引号的标识符可以包含任何字符,但代码为零的字符除外。