You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL中何时需用双引号包裹表名?PostgreSQL相关疑问解答

PostgreSQL标识符大小写敏感性说明

这是PostgreSQL的核心特性,严格遵循SQL标准中关于标识符大小写的规则:

  • PostgreSQL默认会把未加双引号的标识符(表名、列名、函数名等)自动转换为小写后存储。比如执行CREATE TABLE Athletes (id int);,实际在数据库中存储的表名是athletes,此时查询时写SELECT * FROM Athletes;或SELECT * FROM athletes;都能正常运行,因为PostgreSQL会自动把未加引号的Athletes转为小写匹配。
  • 如果创建表时用双引号包裹标识符,比如CREATE TABLE "Athletes" (id int);,PostgreSQL会保留标识符的原始大小写(即存储为Athletes)。这种情况下,查询时必须用双引号包裹表名,否则PostgreSQL会把Athletes转为athletes去查找,自然会报relation does not exist的错误。

简单来说,问题的根源不是数据库创建时自定义的规则,而是创建表时是否使用双引号决定了标识符的大小写敏感行为——这是PostgreSQL遵循SQL标准的特性。

内容的提问来源于stack exchange,提问作者Digvijay Patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 13:01:03