web-dev-qa-db-ja.com

外部キーを作成できません

2つのテーブルの間に外部キーが欲しいので、いつものように試します。今私が抱えている問題は、彼が作成に失敗していることです。そして、それの外観から、すでにキーはあるが存在しないため、作成に失敗しています。

- 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)ので、彼がそれを作成しない理由はわかりません

24
Nicolas Pierre

ユーザーテーブルに存在しないレコードがRegistratieBehandelingen(テーブル名がわからない)にある可能性があります。

select * from RegistratieBehandelingen a where UserID IS NULL or
not exists (select 1 from Users b where b.UserID= a.UserID)
51
praveen

これは、親IDが一致しない子データがあることを意味します。

次のコマンドを実行して、結果が得られるかどうかを確認します。

SELECT * 
FROM tbl_Paramed_RegistratieBehandelingen r
LEFT JOIN Users u on r.UserID = u.UserID
WHERE u.UserID IS NULL

(必要に応じてテーブル名と列名を変更)

結果が得られたら、どのレコードにユーザーと一致しないユーザーIDが含まれているかが表示されます。

11
cjk

上記のクエリの後で、テーブルtbl_Paramed_RegistratieBehandelingenから存在しないUserIdを削除するか、それらをテーブルUsersに挿入することができます。

0
konkass