当我已经遵循格式时,为什么不能在 Postgresql-Pgadmin 中删除一行?
Why can't I delete a row in Postgresql-Pgadmin when I already followed the format?
我有一个包含 2 列的 table Department
,DEPT_CODE
PK 和 DEPT_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。
As documented in the manual identifiers (column & table names) need to be enclosed in double quotes. Single quotes are only for string constants.
并且因为您在创建 table 时对 table 和列名使用了可怕的双引号,所以您现在需要始终使用它们:
DELETE FROM public."Department"
WHERE "DEPT_CODE" = 'CIS';
^ ^
| column name | string constant
strongly recommended 完全避免那些可怕的引用标识符。因此,当您 create tables 时永远不要使用双引号,那么在使用 tables
时就永远不需要使用它们
我有一个包含 2 列的 table Department
,DEPT_CODE
PK 和 DEPT_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。
As documented in the manual identifiers (column & table names) need to be enclosed in double quotes. Single quotes are only for string constants.
并且因为您在创建 table 时对 table 和列名使用了可怕的双引号,所以您现在需要始终使用它们:
DELETE FROM public."Department"
WHERE "DEPT_CODE" = 'CIS';
^ ^
| column name | string constant
strongly recommended 完全避免那些可怕的引用标识符。因此,当您 create tables 时永远不要使用双引号,那么在使用 tables
时就永远不需要使用它们