1. ホーム
  2. sql

[解決済み] テーブルへの挿入または更新が外部キー制約に違反しています。

2022-02-12 13:46:57

質問

2つのテーブルがあります。 エンティティタイプ プロジェクト . 以下は、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
);

に何か値を挿入しようとすると エンティティタイプ テーブルで、次のようなエラーが発生します。

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

どなたか、私が何を間違えているのか、教えてください。

解決方法は?

エラーメッセージは、対応するプロジェクト項目がないentityTypeを追加しようとしていることを意味します。(あなたのドメインや何を達成しようとしているのか知りませんが、そのスキーマのデザインは私には間違っているように見えます...)