Взгляните на ответ Гордона Линоффа, его предложение имеет смысл, хотя и не отвечает на вопрос.Так что может вызвать ошибку, когда вы намереваетесь создать отношение foreign key
?Очевидная возможность - синтаксическая ошибка и опечатка, поэтому вам нужно будет проверить их и исправить любые такие проблемы.
Другая возможность состоит в том, что у вас есть несогласованность, то есть вы пытаетесь создать ограничение foreign key
водин из ваших table
с, но не все значения имеют точные совпадения.Итак, предполагая, что у вас есть таблицы Foo
и Bar
и вы намереваетесь Foo.lorem
быть foreign key
ссылкой на Bar.ipsum
, тогда вам нужно будет убедиться, что все значения, которые у вас есть для Foo.lorem
, имеют Bar.ipsum
пара с точно такими же значениями (кроме null
).Если это не так, то ваше ограничение foreign key
не будет успешно создано.Найдите такие несоответствия:
select distinct Foo.lorem
from Foo
where not (Foo.lorem is null) and
not exists (select 1 from Bar where Foo.lorem = Bar.ipsum);
Внимательно прочитайте строки и убедитесь, что вы исправили любые такие Foo.lorem
значения.