Maison >base de données >tutoriel mysql >Pourquoi ma contrainte de clé étrangère SQL Server échoue-t-elle et comment puis-je y remédier ?

Pourquoi ma contrainte de clé étrangère SQL Server échoue-t-elle et comment puis-je y remédier ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-05 05:50:39690parcourir

Why Is My SQL Server Foreign Key Constraint Failing, and How Can I Fix It?

Dépannage de la création de clés étrangères dans SQL Server

Lors de la définition de clés étrangères dans SQL Server, il faut veiller à ce que la syntaxe soit correcte. Les clés étrangères établissent l'intégrité référentielle entre les tables, garantissant la cohérence et la validité des données.

Dans le code fourni, une erreur est rencontrée lors de la création d'une contrainte de clé étrangère sur la table question_bank faisant référence à la colonne exam_id dans la table exams. Le message d'erreur indique une inadéquation dans le nombre de colonnes référencées et de colonnes référencées.

Le problème vient de l'absence d'une colonne dans la table question_bank qui correspond à la colonne exam_id dans la table exams. Pour établir une relation de clé étrangère valide, il doit y avoir une correspondance entre les colonnes référencées et référencées.

Pour résoudre cette erreur, ajoutez une colonne nommée question_exam_id à la table question_bank. Cette colonne doit avoir le même type de données que la colonne exam_id de la table exams.

Le code corrigé crée désormais la contrainte de clé étrangère avec succès :

...
create table question_bank
(
    question_id uniqueidentifier primary key,
    question_exam_id uniqueidentifier not null, -- Added this line
    question_text varchar(1024) not null,
    question_point_value decimal,
    constraint question_exam_id foreign key references exams(exam_id)
);
...

De plus, si la contrainte doit être créé indépendamment, l'instruction ALTER TABLE peut être utilisée :

ALTER TABLE question_bank
ADD CONSTRAINT question_exam_id_FK FOREIGN KEY (question_exam_id) REFERENCES exams(exam_id);

En assurant le bon alignement du référencement et du référencement colonnes, les clés étrangères peuvent être établies efficacement dans SQL Server, préservant ainsi l'intégrité des données et évitant les incohérences.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn