postgresql保留字是SQL中具有特殊意义的关键词,如select、WHERE、CREATE等,分为完全保留和非完全保留两类,完全保留字必须用双引号才能用作标识符,否则会引发语法错误,建议开发时避免使用保留字命名表或列以减少冲突风险。

postgresql保留字是指在sql语句中具有特殊意义的关键词,不能直接用作表名、列名或其他标识符,除非用双引号括起来。以下是一些常见的PostgreSQL保留字,分为几类帮助理解。
常用保留字(部分)
这些词在PostgreSQL中被定义为保留关键字,建议避免用作标识符:
- SELECT – 查询数据
- INSERT – 插入数据
- UPDATE – 更新数据
- delete – 删除数据
- FROM – 指定数据源
- WHERE – 条件过滤
- AND, OR, NOT – 逻辑操作
- JOIN, LEFT, RIGHT, INNER, FULL – 表连接
- GROUP BY, HAVING – 分组与聚合过滤
- ORDER BY – 排序
- AS – 别名定义
- ON – 关联条件
- IN, LIKE, BETWEEN – 条件匹配
- CREATE, DROP, ALTER – 结构操作
- table, INDEX, VIEW – 对象类型
- PRIMARY KEY, FOREIGN KEY, UNIQUE – 约束定义
- NULL, default – 值定义
- CAST, TYPE – 类型转换
- WITH – 公共表表达式(CTE)
- VALUES – 插入值列表
完全保留 vs. 非完全保留
PostgreSQL将保留字分为两类:
- 完全保留字:在任何情况下都不能作为标识符使用,除非加双引号。例如:SELECT、WHERE、ORDER。
- 非完全保留字:在某些上下文中可用作标识符,但仍有冲突风险。例如:user、current_date。
如何安全使用保留字作为标识符?
如果必须使用保留字作为列名或表名,可以用双引号包裹:
CREATE TABLE "order" ( "id" SERIAL PRIMARY KEY, "select" TEXT, "from" TEXT );
注意:一旦使用双引号,标识符变为大小写敏感,后续引用也必须用双引号。
查看完整保留字列表
最权威的方式是查阅PostgreSQL官方文档。也可以通过系统表查询:
该函数返回所有关键字及其类别(如 reserved、unreserved),便于判断是否可安全使用。
基本上就这些。实际开发中,建议避开常见保留字命名,减少出错概率。不复杂但容易忽略。