我有两张桌子:entitytype张和project张.以下是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
);

当我try 将任何值插入到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".

有谁能说明我做错了什么吗?

推荐答案

该错误消息表示您正在try 添加没有相应项目条目的entityType.(我不知道您的域或您试图实现的目标,但在我看来,该模式设计是错误的…)

Database相关问答推荐

如何自动更新不同的数据库?

为多个列 Select 最新的非空值

如何在 N1QL 查询(Couchbase 查询)中使用 LENGTH() 字符串函数

Spring Data JPA 对 SQL 注入安全吗

数据库设计 - 类别(categories)和子类别(sub-categories)

docker-compose mysql init sql 未执行

PostgreSQL - 按时间戳值分组?

免费的 SQL 比较工具

如何将 MySQL Workbench 连接到 Amazon RDS?

在 MySQL 中实现一对一关系时确定外键

在 SQL Server 2005 中将数据库从一个驱动器移动到另一个驱动器的正确方法是什么?

如何将 Android 手机上的 SQLite 数据库与服务器上的 MySQL 数据库同步?

有什么理由不应该在生产中使用 h2 数据库?

Redis Pub/Sub 和 Redis Stream 之间的主要区别是什么?

Twisted + SQLAlchemy 和最好的方法

Codeigniter - 使用多个数据库

如何在 SQLServer 数据库的两个实例之间复制数据记录

带数据库的Electron 应用程序

列的 SQL Server 2008 千位分隔符

PostgreSQL 中的最大事务大小