云数据库 GAUSSDB-为什么查询中无法识别表名或者列名?

时间:2024-11-13 14:45:06

为什么查询中无法识别表名或者列名?

答:无法识别名称最常见的原因是创建过程中表名或者列名使用了双引号引入了大小写。使用双引号时,表名和列名(称为标识符)在存储是区分大小写的,所以在查询时必须使用双引号且大小写需要与创建时匹配。因为某些接口或应用程序在创建时会自动引入双引号,所以建议创建时统一使用小写。示例:

--创建表。
gaussdb=# CREATE TABLE "TB_test" ("Tid" int, num int);

--查询表时不加双引号,默认都为小写,会报错。
gaussdb=# SELECT * FROM TB_test;
ERROR:  relation "tb_test" does not exist
LINE 1: SELECT * FROM TB_test;

gaussdb=# SELECT Tid FROM "TB_test";
ERROR:  Column "tid" does not exist
LINE 1: SELECT Tid FROM "TB_test"

--查询时加双引号。
gaussdb=# SELECT "Tid"  FROM  "TB_test";
 Tid 
-----
(0 rows)

--删除表。
gaussdb=# DROP TABLE "TB_test";
support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-1835.html