SQL Compact (CE) проблема с созданием внешнего ключа - PullRequest
9 голосов
/ 21 сентября 2009

Я пытаюсь создать внешний ключ в базе данных SQL Compact, но получаю сообщение об ошибке «Невозможно вставить значение внешнего ключа, поскольку соответствующее значение первичного ключа не существует».

TableA уже ссылается на TableB, и я пытаюсь создать ссылку из TableC, используя тот же первичный ключ в TableB. Поскольку у меня уже есть ссылка на TableB, в этой таблице должен быть действительный первичный ключ.

Я дважды проверил и трижды проверил ключи и типы данных всех полей, так что я в замешательстве.

Я пытался использовать как параметр графического интерфейса в Visual Studio 2008, так и команду SQL.

1 Ответ

14 голосов
/ 21 сентября 2009

Это из-за "неверных данных" у вас в таблицах. Проверьте, есть ли у вас все соответствующие значения в первичной таблице.

СУБД проверяет ссылочную целостность для обеспечения «правильности» данных в базе данных.

Пример: Если у вас есть столбец StatusId в Table1 со значениями от 1 до 10 и столбец StatusId в Table2 со значениями от 1 до 11 вы не можете использовать Table1 в качестве родителя, потому что нет соответствующего значения (11), которое у вас уже есть в Table2 .

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