Внешний ключ не может создать
Мне нужен внешний ключ между двумя таблицами, поэтому я стараюсь, как всегда. Теперь проблема заключается в том, что он не создает, и по внешнему виду он не создается, потому что уже есть ключ, но не существует.
- Unable to create relationship
'FK_tbl_Paramed_RegistratieBehandelingen_Users'.
The ALTER TABLE statement conflicted with the
FOREIGN KEY constraint "FK_tbl_Paramed_RegistratieBehandelingen_Users".
The conflict occurred in database "Nestor_Server",
table "dbo.Users", column 'UserID'.
Я проверял, имеют ли они одинаковый тип, они делают (bigint), поэтому не понимаю, почему он не будет его создавать
Ответы
Ответ 1
Возможно, у вас есть записи в RegistratieBehandelingen (не уверены в имени таблицы), которых нет в таблице пользователей.
select * from RegistratieBehandelingen a where UserID IS NULL or
not exists (select 1 from Users b where b.UserID= a.UserID)
Ответ 2
Это означает, что у вас есть дочерние данные без соответствующего идентификатора родителя.
Выполните следующие действия, чтобы узнать, есть ли у вас какие-либо результаты:
SELECT *
FROM tbl_Paramed_RegistratieBehandelingen r
LEFT JOIN Users u on r.UserID = u.UserID
WHERE u.UserID IS NULL
(при необходимости заменяя имена таблиц и столбцов)
Если вы получите какие-либо результаты, тогда он должен показать, какие записи содержат идентификаторы пользователей, которые не соответствуют пользователям.
Ответ 3
После вышеуказанного запроса вы можете удалить не существующий UserId из таблицы tbl_Paramed_RegistratieBehandelingen или вставить их в таблицу Users.