我正在学习 SQL,同时将值输入到具有五列
customer
的 CustID, CustName, Age, City, Salary
表中。我输入的所有内容均正确且区分大小写,但仍然出现错误。
我的命令:
INSERT INTO customer (CustID, CustName, Age, City, Salary)
VALUES (1, 'Ajay', 55, 'Delhi', 52000)
错误:关系“客户”的列“custid”不存在
第 2 行:(客户 ID、客户名称、年龄、城市、工资)
线索就在错误消息中。它说
'列“custid”...不存在'
当然,您试图将数据插入列
CustID
,而不是 custid
。这可能看起来令人困惑,但请记住 SQL 不应该是区分大小写的语言!我们通常使用大小写来直观地区分关键字和值。
因此,默认行为是将查询中的所有列名称映射为小写,以便
CustID
、CUSTID
和 custid
都被视为相同。
您可以坚持使用双引号使 Postgres 区分大小写:
INSERT INTO customer
("CustID", "CustName", "Age", "City", "Salary")
VALUES
(1, 'Ajay', 55, 'Delhi', 52000)
这当然是极其乏味的。这就是为什么我们通常建议使用
snake_case
列名称(例如 cust_id
),而不是 CamelCase
。
我也面临同样的错误 我已经尝试了所有方法,但仍然显示相同的错误