SQL - 提示引用列

时间:2016-06-19 18:09:19

标签: sql postgresql

我是SQL的初学者,所以如果这个问题很原始,我很抱歉。
我刚刚开始关注http://www.w3schools.com的教程,所以下载了" Northwind"数据库尝试使用它,并使用pgAdmin 3控制台访问数据库。 我只是尝试使用简单的命令来选择表中的一列,但它给出了与任何表中的任何列相同的以下消息

LINE 1: select City from Customers;
                        ^
HINT:  Perhaps you meant to reference the column "customers.City".

我想问一下我的命令有什么问题吗?以及如何解决它?

由于

2 个答案:

答案 0 :(得分:19)

当你导入这个" Northwind"数据库列名已在CamelCase中导入 - 您的导入必须为create table个查询的列标识符添加双引号。

这是相当不幸的,因为这会导致您在所有查询中也必须引用它们,例如:

select "City" from customers;

为了保持理智,我建议你rename all columns to lower case。这样,使用的情况并不重要,因为Postgres会自动将所有未加引号的标识符转换为小写。那么任何一个都可行:

select city from customers;
select City from Customers;
SELECT CITY FROM CUSTOMERS;

答案 1 :(得分:0)

您的查询没有任何问题。看起来您的教程希望您遵循始终将表名添加到您引用的列的做法。实际上,只有当它会导致歧义时才需要这样做(例如,如果你引用两个表,这两个表都有一个City列)。