вставка или обновление таблицы нарушает ограничение внешнего ключа - PullRequest
4 голосов
/ 15 марта 2010

У меня есть две таблицы: сущность и проект . Вот операторы создания таблицы:

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

Может кто-нибудь пролить свет на то, что я делаю неправильно?

Ответы [ 2 ]

10 голосов
/ 15 марта 2010

Сообщение об ошибке означает, что вы пытаетесь добавить entityType, у которого нет соответствующей записи Project. (Я не знаю ваш домен или что вы пытаетесь достичь, но этот дизайн схемы мне не подходит ...)

3 голосов
/ 15 марта 2010

У вас нет записи в табличном проекте с pname (в вашем примере) 494?

Отношение ключа говорит, что pname не разрешено в таблице сущностей, если оно не соответствует pname в таблице проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...