我正在使用 PostgreSQL。我在列中插入值时遇到错误,所有列名称、区分大小写、值都是正确的

问题描述 投票:0回答:2

我正在学习 SQL,同时将值输入到具有五列

customer
CustID, CustName, Age, City, Salary
表中。我输入的所有内容均正确且区分大小写,但仍然出现错误。

我的命令:

INSERT INTO customer (CustID, CustName, Age, City, Salary)
VALUES (1, 'Ajay', 55, 'Delhi', 52000)

错误:关系“客户”的列“custid”不存在
第 2 行:(客户 ID、客户名称、年龄、城市、工资)

sql postgresql error-handling sql-insert
2个回答
0
投票

线索就在错误消息中。它说

'列“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


0
投票

我也面临同样的错误 我已经尝试了所有方法,但仍然显示相同的错误

© www.soinside.com 2019 - 2024. All rights reserved.