我正在使用 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声明发挥作用?谢谢
SQL 语句区分大小写,传入的标识符均为小写,除非特别强制使用双引号。
这意味着要引用您的tabDefaultValue,您需要使用以下语句:
select * from _a66df261120b6c23."tabDefaultValue";
Run Code Online (Sandbox Code Playgroud)
请注意,引号仅围绕表名称,如果dbname.tablename一起引号,则这将被视为中间有一个点的单个标识符。
| 归档时间: |
|
| 查看次数: |
1195 次 |
| 最近记录: |