从头开始创建数据模型:在 PostgreSQL 中添加外键

问题描述 投票:0回答:1

作为个人项目,我正在从数据集创建一个小型数据模型。

现在我在两个表之间创建外键时遇到问题。

CREATE TABLE IF NOT EXISTS public."Years"
(
    "ID_Year" integer,
    "Year" integer,
    PRIMARY KEY ("ID_Year")
);

CREATE TABLE IF NOT EXISTS public."SendingCountries"
(
    "ID_Send_Country" integer,
    "Year2Years" integer,
    "Country2Countries" integer,
    "Female_legis2FemaleLegislators" integer,
    "FeministPolicy" boolean,
    PRIMARY KEY ("ID_Send_Country")
);

我用过这个代码:

ALTER TABLE SendingCountries
ADD CONSTRAINT FK_SendingCountries_Years
FOREIGN KEY (Year2Years)
REFERENCES Years(ID_Year);

但我有这样的输出:“错误:关系“发送国家”不存在”

任何人都可以强调我做错了什么吗?

谢谢

我的目标是将 SendingCountries 表中的“Year2Years”列作为表 Years 的 ID_Year 的外键

postgresql foreign-keys etl data-modeling alter-table
1个回答
0
投票

我可以从你的代码中想到两个原因:

  1. 区分大小写:PostgreSQL 默认情况下将不带引号的标识符转换为小写。确保表名与 SQL 查询中使用的大小写匹配。
  2. 架构限定:确保表属于正确的架构。

根据提供的代码,您似乎在表名和列名周围使用双引号,这意味着 PostgreSQL 将保留您提供的大小写。仔细检查 SQL 查询中的大小写。

你可以尝试吗:

ALTER TABLE public."SendingCountries"
ADD CONSTRAINT FK_SendingCountries_Years
FOREIGN KEY ("Year2Years")
REFERENCES public."Years"("ID_Year");
© www.soinside.com 2019 - 2024. All rights reserved.