web-dev-qa-db-fra.com

La clé étrangère ne parvient pas à créer

Je veux une clé étrangère entre 2 tables, donc je l’essaye comme je le fais toujours. Maintenant, le problème que je suis est qu'il ne parvient pas à créer, et il ne semble pas qu'il puisse créer car il y a déjà une clé, mais il n'y en a pas.

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

J'ai vérifié s'ils ont le même type, ils le font (bigint), alors ne comprends pas pourquoi il ne le créera pas

24
Nicolas Pierre

Il est possible que vous ayez des enregistrements dans RegistratieBehandelingen (vous n'êtes pas sûr du nom de la table) qui ne figurent pas dans la table Utilisateurs.

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

Cela signifie que vous avez des données enfants sans ID parent correspondant.

Exécutez ce qui suit pour voir si vous obtenez des résultats:

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

(changer les noms de table et de colonne le cas échéant)

Si vous obtenez des résultats, les enregistrements contenant les ID utilisateur ne correspondant pas aux utilisateurs doivent s'afficher.

11
cjk

Après la requête ci-dessus, vous souhaiterez peut-être supprimer l’ID utilisateur non existant de la table tbl_Paramed_RegistratieBehandelingen ou les insérer dans la table Utilisateurs.

0
konkass