【问题标题】:Query with the postgreSQL database [duplicate]使用 postgreSQL 数据库查询 [重复]
【发布时间】:2020-01-30 07:26:44
【问题描述】:

我已经有一个postgresql创建的数据库(由我以外的其他管理员提供),创建命令如下图。

CREATE TABLE "Districts" (
    "Name" character varying(500),
    "ProvinceCode" text
);

查询插入值到我的表如下:

Insert into Districts (Name,ProvinceCode) values ("Abc","Xyz"); `ERROR:  relation "districts" does not exist`

我也试过了:

Insert into "Districts" (Name,ProvinceCode) values ("Abc","Xyz"); `ERROR:  column "name" of relation "Districts" does not exist`

还有:

Insert into "Districts" ("Name","ProvinceCode") values ("Abc","Xyz"); `ERROR:  column "Abc" does not exist`

我不知道语法如何正确。我真的需要有人帮忙。

【问题讨论】:

  • 根据经验:不要在 SQL 中使用双引号 (")。

标签: sql postgresql quoted-identifier string-constant


【解决方案1】:

要引用标识符,请使用"(双引号)。 (不带引号的字符也将被解释为标识符,只是忽略大小写(转换为小写)并在空格处拆分。)

字符串文字周围的引号是'(单引号)。至少这是 SQL 标准的一部分。

因此,适合您的正确插入是:

INSERT INTO "Districts" ("Name", "ProvinceCode") VALUES ('Abc', 'Xyz');

无论如何,我通常不建议使用带引号的标识符(因为您总是需要随身携带它们而通常没有真正的收获)。因此,如果可能的话,我建议将表及其列重命名为districts, name, province_code(但由于这在某种意义上不是您的表,因此可能为时已晚)。在此之后,您的插入将如下所示:

INSERT INTO districts (name, province_code) VALUES ('Abc', 'Xyz');

【讨论】:

  • 太棒了!谢谢你的回答。
猜你喜欢
  • 2011-07-01
  • 1970-01-01
  • 2022-01-21
  • 2014-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-12
  • 2018-04-13
相关资源
最近更新 更多