Postgres 列别名的名称在长度、包含非 ASCII 字符的能力等方面是否有任何限制?从 8.1 版到现在,这些限制是否有任何变化?
2 回答
a_horse_with_no_name 说了什么。通常,您可以通过将 URL 中的“当前”替换为版本号来查看文档的一些早期版本。但是 8.1 的文档在手动存档中。
SQL 标识符和关键字必须以字母(az,以及带有变音符号和非拉丁字母的字母)或下划线 (_) 开头。标识符或关键字中的后续字符可以是字母、下划线、数字 (0-9) 或美元符号 ($)。请注意,根据 SQL 标准的字母,标识符中不允许使用美元符号,因此使用它们可能会降低应用程序的可移植性。SQL 标准不会定义包含数字或以下划线开头或结尾的关键字,因此这种形式的标识符可以避免与标准的未来扩展发生冲突。
SQL 标识符和关键字必须以字母(az,以及带有变音符号和非拉丁字母的字母)或下划线 (_) 开头。标识符或关键字中的后续字符可以是字母、下划线、数字 (0-9) 或美元符号 ($)。请注意,根据 SQL 标准的字母,标识符中不允许使用美元符号,因此使用它们可能会降低应用程序的可移植性。SQL 标准不会定义包含数字或以下划线开头或结尾的关键字,因此这种形式的标识符可以避免与标准的未来扩展发生冲突。
没变。
这是本文档的当前版本。在我写完这个答案后,它可能已经改变了。
列别名的规则与常规列名的规则没有什么不同。
http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
SQL 标识符和关键字必须以字母(az,以及带有变音符号和非拉丁字母的字母)或下划线 (_) 开头。标识符或关键字中的后续字符可以是字母、下划线、数字 (0-9) 或美元符号 ($)。关键字和未加引号的标识符不区分大小写。
还有第二种标识符:分隔标识符或引用标识符。它由双引号 (") 中的任意字符序列组成。带引号的标识符可以包含任何字符,但代码为零的字符除外。