我正在学习 SQL,同时将值输入“客户”(Table_name),有五列(CustID、CustName、Age、City、Salary)。我正在输入所有内容并区分大小写,但仍然面临错误。
我的命令:
INSERT INTO customer
(CustID, CustName, Age, City, Salary)
VALUES
(1, 'Ajay', 55, 'Delhi', 52000)
ERROR: column "custid" of relation "customer" does not exist
LINE 2: (CustID, CustName, Age, City, Salary)
线索就在错误消息中。它说
'列“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
。