1

我有一个Department有 2 列的表,DEPT_CODEPKDEPT_NAME并且两者都有数据类型name。我插入:

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

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

DELETE FROM public."Department"
    WHERE 'DEPT_CODE' = 'CIS';

这并没有删除该行(我使用了 pgadmin 提供的删除脚本)。如果我不使用引号'DEPT_CODE',它给出了一个错误:

ERROR:  column "dept_code" does not exist
LINE 2:  WHERE DEPT_CODE = 'CIS';

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

4

1 回答 1

0

如手册中所述,标识符(列和表名)需要用双引号括起来。单引号仅用于字符串常量

而且因为您在创建表时为表名和列名使用了可怕的双引号,所以您现在需要始终使用它们:

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

强烈建议完全避免使用那些可怕的引用标识符。所以在创建表格时永远不要使用双引号,那么在处理表格时就不需要使用它们

于 2020-11-03T08:23:13.873 回答