在表上插入或更新违反外键约束

sup*_*sad 8 sql database postgresql

我有两个表:entitytypeproject.以下是create table语句:

Create table project ( 
pname varchar(20) not null, 
primary key(pname)
);

create table entitytype( 
entityname varchar(20) not null, 
toppos char(100), 
leftpos char(100), 
pname varchar(20) not null, 
primary key(entityname), 
foreign key(pname) references project(pname) on delete cascade on update cascade
);
Run Code Online (Sandbox Code Playgroud)

当我尝试将任何值插入entitytype表时,我收到以下错误:

ERROR: insert or update on table "entitytype" violates foreign key constraint "entitytype_pname_fkey"
  Detail: Key (pname)=(494) is not present in table "project".
Run Code Online (Sandbox Code Playgroud)

谁能说清楚我做错了什么?

Mit*_*eat 11

错误消息表示您正在尝试添加没有相应项目条目的entityType.(我不知道你的域名或你想要实现的目标,但那个架构设计对我来说不对...)

  • 嘿非常感谢我想我出了什么问题。输入数据时,我以错误的顺序插入。 (2认同)

Lar*_*tig 5

您在表项目中没有 pname 为(在您的示例中)494 的记录吗?

键关系表示实体表中不允许有 pname,除非它与项目表中的 pname 匹配。