遵循格式后,为什么不能在Postgresql-Pgadmin中删除行?

问题描述

我有一个具有两列的表Department,分别是PK和DEPT_CODE,它们的数据类型均为DEPT_NAME。我插入了:

name

然后我要删除它,所以我写道:

INSERT INTO public."Department"("DEPT_CODE","DEPT_NAME")
VALUES ('CIS','Computer Info Systems');

这没有删除行(我使用了pgadmin提供的删除脚本)。如果我不对DELETE FROM public."Department" WHERE 'DEPT_CODE' = 'CIS'; 使用引号,则会出现错误

'DEPT_CODE'

Idk怎么办。我看到的每个教程似乎都可以删除,为什么不删除呢?这是我第一次使用pgadmin-postgres。

解决方法

As documented in the manual标识符(列和表名)需要用双引号引起来。单引号仅用于字符串constants

并且由于在创建表时使用了可怕的双引号作为表名和列名,因此现在需要始终使用它们:

DELETE FROM public."Department"
WHERE "DEPT_CODE" = 'CIS';
       ^               ^
       | column name   | string constant

strongly recommended完全避免了那些可怕的带引号的标识符。因此,创建表时切勿使用双引号,因此在处理表时也无需使用双引号