我有两个表: entitytype 和项目。以下是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
);
当我尝试将任何值插入 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".
有人能说清楚我做错了吗?
答案 0 :(得分:10)
错误消息表示您正在尝试添加没有相应项目条目的entityType。 (我不知道你的域名或者你想要实现的目标,但这种架构设计对我来说是错误的......)
答案 1 :(得分:3)
你是否在pname为(在你的例子中)494的表项目中有记录?
关键关系表示实体表中不允许使用pname,除非它与项目表中的pname匹配。
答案 2 :(得分:0)
当您的架构错误时会发生此错误。 提示:再次检查您的外键分配