问题描述
我有一个具有两列的表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完全避免了那些可怕的带引号的标识符。因此,创建表时切勿使用双引号,因此在处理表时也无需使用双引号