当前位置: 首页 > 知识库问答 >
问题:

没有唯一的约束匹配引用表的给定键

滑景胜
2023-03-14

我在创建一个包含外键的表时遇到问题,该外键来自另一个包含两个主键的表。

以下是表格:

create table names_types(
id_name serial,name varchar(70),type varchar(70),primary key(id_name,name)
);

create table risk_final(
id_risk serial,id_date varchar(70)references date_final(vdate_id)
,name varchar(70)references names_types(name)
,var_mc_risk varchar(70)
,mvar_mc_risk varchar(70)
,incvar_mc_risk varchar(70)
,cvar_mc_risk varchar(70)
,delta varchar(70)
,present_value varchar(70)
,net_exposure varchar(70)
,amount varchar(70)
,primary key(id_risk,id_date,name)
);

无法创建表risk_final并给我错误:

错误:没有唯一的约束匹配引用表"names_types"的给定键

我该怎么解决呢?

共有1个答案

韩华美
2023-03-14

我认为信息非常清楚:您不能引用密钥的一部分,无论是主密钥还是候选密钥(因此是“唯一约束”)。如果需要引用names_types表,可以在后一个表上创建一个代理键并引用该键(例如整数id),但如果实际上只想引用name列,则应该有第三个表,例如,names,主键为name

create table names (name varchar(70), primary key (name));
create table types (id_name serial, primary key (id_name));
create table names_types (id_name serial references types(id_name), 
                          name varchar(70) references names(name), 
                          primary key(id_name, name));
 类似资料:
  • 问题内容: 我有一个表定义: 我正在尝试创建失败的表 错误是: 我不确定如何解决此问题。 问题答案: 我认为您正在寻找两个单独的外键:

  • 所以我得到了一个错误,没有唯一的约束匹配我的一个表的给定键。我有两个表:用户和项目,其中我们有一个多对一的关系(一个用户有多个项目)。我用炼金术来做这一切: 要创建表,我在我的应用程序中有以下语句。py': 错误是:没有唯一的约束匹配引用表用户的给定键。 我不确定哪里出错了,因为我在ItemModel中有一个外键与UserModel中的主键匹配。欢迎任何建议/提示! 谢谢

  • 我正在为班级注册建立一个数据库,但我在“注册”表上遇到了问题。我需要将分区中的所有主键传递到注册中,但我还想传递一个附加键(“sectionNumber”)。然而,我不想让“sectionNumber”成为“Sections”主键的一部分,因为我不想将sectionNumber传递到每个我有外键的表中,这些外键来自“Sections”有人对如何解决这个问题有什么建议吗?我一直得到下面的错误。

  • 试图在Postgres 9.1中创建此示例表结构: 运行上述代码会产生一个错误,这对我来说没有意义: 有人能解释为什么会出现这种错误吗?

  • 我试着用这些代码使用postgresql创建表,但人们一直说,并没有唯一的约束匹配引用表的给定键。当我试图创建表、节和评估时,出现了这个消息。 请帮帮我。 )我更改了create语句的顺序,并在表中添加了unique key,但仍然不起作用。

  • PostgreSQL/PGAdmin4错误:没有唯一的约束匹配引用表的给定键 这是我试图编码到PGAdmin4/Postgresql:http://i.imgur.com/xPEu8Sh.jpg的模式 我能够转换所有表格,除了“资格证书”。 我尝试处理以下查询: 我收到以下消息:错误:没有唯一的约束匹配引用表“section”的给定键 这些是我在表格部分中介绍的外国和主要内容 普凯:我,伊姆格。c