我正在 Postgres (Supabase) 服务器中创建一个包含内容的表。此表应仅包含内容 ID。
在另一个表中,我存储了该内容的翻译(即内容 id、翻译的语言和国家代码以及翻译文本)。
像这样:contents_table language_codes_table country_codes_table contents_translation
在目录表中,我尝试使用来自 3 个外键的组合作为主键,它们是语言代码、国家代码和内容 ID。
我正在创建这样的表:
CREATE TABLE public.contents_localization_test (
content_id uuid REFERENCES public.contents (content_id),
lang_code text REFERENCES public.lang_codes (lang_code),
country_code text REFERENCES public.lang_country_codes (country_code),
content_name text,
CONSTRAINT unique_entry PRIMARY KEY (content_id, lang_code, country_code)
);
我期望被接受的条目:
(“my-id-1”、“en”、“US”、“英文文本”)
(“my-id-1”、“pt”、“BR”、“Texto em Português”)
由于 id 重复,它们没有被明确接受。我究竟做错了什么?
编辑 接受的数据样本(这是第一个):
content_id : 68f8ebc2-ac50-44d0-a626-4babd343d2f9
lang_code: pt
country_code: BR
content_name: Tabela Periódica
不被接受的数据样本:
content_id : 68f8ebc2-ac50-44d0-a626-4babd343d2f9
lang_code: en
country_code: US
content_name: Periodic Table
这是错误:错误:错误:在表“contents_localization_test”上插入或更新违反了外键约束“contents_localization_test_country_code_fkey”
编辑 2
删除对国家表的引用后,问题就消失了。
编辑 3 我发现了问题。谢谢大家的帮助。