PostgreSQL 中的表和列命名约定:基本原理
在尝试创建名为“15909434_user”的表时,遇到错误。研究揭示了 PostgreSQL 的命名约定,该约定禁止名称以数字开头的对象。这促使您探究此限制背后的原因。
根据 SQL-92 标准,标识符起始字符必须是简单的拉丁字母。此约定简化了 SQL 查询的解析,特别是在区分 SELECT-list 子句中的列名和数字表达式时。
考虑以下查询:
SELECT 2e2 + 3.4 FROM ...
如果允许使用数字字符作为标识符启动器,解析器将很难确定“2e2”是列名还是数字,以及“3.4”是否代表表“3”和列“4”或数值 3.4。
通过遵守标识符必须以非数字字符开头的规则,解析器可以快速区分标识符(列名称)和数字表达式。
虽然设计一个允许数字前导字符的方案在理论上是可能的,但它可能会导致更复杂和模糊的解析规则。
作为结果,PostgreSQL采用了禁止表名和列名以数字字符开头的SQL约定,确保了查询解析的高效性和SQL代码的清晰性。
以上是为什么 PostgreSQL 表名和列名不能以数字开头?的详细内容。更多信息请关注PHP中文网其他相关文章!