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

标签 sql database postgresql

我有两个表:entitytypeproject。以下是建表语句:

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".

任何人都可以阐明我做错了什么吗?

最佳答案

该错误消息表示您正在尝试添加没有相应项目条目的实体类型。 (我不知道你的领域或你想要实现的目标,但我觉得模式设计不对......)

关于sql - 在表上插入或更新违反外键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2444899/

相关文章:

如果为 NULL,MySQL 更新/连接列,使用来自其他列的数据

javascript - 如何从具有多行的 HTML 表单动态地将多行插入到数据库中?

sql - SELECT ... ORDER BY ... FOR UPDATE 语句中的行是否按顺序锁定?

postgresql - 由于空白字符串被视为不存在的数据,无法从 pg_dump 恢复数据

postgresql - 在 PostgreSQL 8.3 中将 UTC 时间转换为本地时间

mysql - SQL:在不知道总输入量的情况下跳过订单中的条目

mysql - 使用 MySQL View 检索运行总计

mysql - 使用日期格式的 INSERT ... SELECT

PostgreSQL:如何在我自己的 C 函数中创建一个数字范围?

SQL 数据库模型 : Multiple artists on single song