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

CockroachDB库表存在但查询报relation不存在错误如何解决

问题根因
  • CockroachDB 作为 PostgreSQL 超集,完全遵循 PostgreSQL 的标识符大小写规则:未使用双引号包裹的标识符会被自动转换为小写,只有用双引号包裹的标识符才会保留原始大小写。
  • 你创建tabDefaultValue表时使用了双引号保留了驼峰大小写格式,因此数据库中实际存储的表名是区分大小写的tabDefaultValue,而你查询时未给表名加双引号,语句被解析为查找全小写的tabdefaultvalue,因此触发不存在的报错。
  • \dt仅返回sammy表是因为该命令默认只展示当前会话search_path指定schema下的表,你当前默认schema不是_a66df261120b6c23库的public schema,因此看不到目标表。
解决方案

方案1:直接修改查询语句(无需修改表结构)

查询时用双引号包裹表名,保留原始驼峰大小写即可正常执行:

select * from _a66df261120b6c23."tabDefaultValue";

指定schema的更稳妥写法:

select * from _a66df261120b6c23.public."tabDefaultValue";

方案2:重命名表为全小写(长期使用更方便)

执行重命名语句将表名改为全小写,后续查询无需再加双引号:

alter table _a66df261120b6c23.public."tabDefaultValue" rename to tabdefaultvalue;

重命名完成后,你原本的查询语句select * from _a66df261120b6c23.tabDefaultValue;即可正常运行。

修复\dt看不到目标表的问题

先修改当前会话的默认schema指向目标库的public schema,再执行\dt即可展示所有表:

set search_path to _a66df261120b6c23.public;
\dt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:15:02