错误:关系“表”不存在,即使数据库和表都存在

Mar*_*aio 1 cockroachdb

我正在使用 cockroachdb,它本质上是 postgres 的超集,我不明白为什么这样说:

select * from _a66df261120b6c23.tabDefaultValue;
Run Code Online (Sandbox Code Playgroud)

结果犯错误:

ERROR: relation "_a66df261120b6c23.tabdefaultvalue" does not exist
Run Code Online (Sandbox Code Playgroud)

show databases给我:

    database_name   | owner | primary_region | regions | survival_goal
--------------------+-------+----------------+---------+----------------
  _a66df261120b6c23 | root  | NULL           | {}      | NULL
  defaultdb         | root  | NULL           | {}      | NULL
  postgres          | root  | NULL           | {}      | NULL
  root              | root  | NULL           | {}      | NULL
  sammy             | root  | NULL           | {}      | NULL
  system            | node  | NULL           | {}      | NULL
  test123           | root  | NULL           | {}      | NULL
  test3             | root  | NULL           | {}      | NULL
  test4             | root  | NULL           | {}      | NULL
  test5             | root  | NULL           | {}      | NULL
  test9             | root  | NULL           | {}      | NULL
Run Code Online (Sandbox Code Playgroud)

show tables from _a66df261120b6c23给我:

  schema_name |    table_name     | type  | owner | estimated_row_count | locality
--------------+-------------------+-------+-------+---------------------+-----------
  public      | __Auth            | table | root  |                   0 | NULL
  public      | tabDefaultValue   | table | root  |                   0 | NULL

Run Code Online (Sandbox Code Playgroud)

数据库和表都存在,为什么会select * from _a66df261120b6c23.tabDefaultValue;失败呢?奇怪的是,当我运行时,\dt我得到的是:

  schema_name | table_name | type  | owner | estimated_row_count | locality
--------------+------------+-------+-------+---------------------+-----------
  public      | sammy      | table | root  |                   0 | NULL
Run Code Online (Sandbox Code Playgroud)

我如何真正让该select声明发挥作用?谢谢

Mar*_*arc 5

SQL 语句区分大小写,传入的标识符均为小写,除非特别强制使用双引号

这意味着要引用您的tabDefaultValue,您需要使用以下语句:

select * from _a66df261120b6c23."tabDefaultValue";
Run Code Online (Sandbox Code Playgroud)

请注意,引号仅围绕表名称,如果dbname.tablename一起引号,则这将被视为中间有一个点的单个标识符。