Heim >Datenbank >MySQL-Tutorial >Warum schlägt meine SQL Server-Fremdschlüsseleinschränkung fehl und wie kann ich das Problem beheben?

Warum schlägt meine SQL Server-Fremdschlüsseleinschränkung fehl und wie kann ich das Problem beheben?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-05 05:50:39690Durchsuche

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

Fehlerbehebung bei der Erstellung von Fremdschlüsseln in SQL Server

Bei der Definition von Fremdschlüsseln in SQL Server muss darauf geachtet werden, dass die Syntax korrekt ist. Fremdschlüssel stellen die referenzielle Integrität zwischen Tabellen her und stellen so die Konsistenz und Gültigkeit der Daten sicher.

Im bereitgestellten Code ist ein Fehler beim Erstellen einer Fremdschlüsseleinschränkung für die Tabelle „question_bank“ aufgetreten, die auf die Spalte „examen_id“ in der Tabelle „examens“ verweist. Die Fehlermeldung weist auf eine Nichtübereinstimmung in der Anzahl der referenzierenden und referenzierten Spalten hin.

Das Problem ist auf das Fehlen einer Spalte in der Tabelle „question_bank“ zurückzuführen, die der Spalte „examen_id“ in der Tabelle „examens“ entspricht. Um eine gültige Fremdschlüsselbeziehung herzustellen, muss eine Übereinstimmung zwischen den referenzierenden und referenzierten Spalten bestehen.

Um diesen Fehler zu beheben, fügen Sie eine Spalte mit dem Namen „question_exam_id“ zur Tabelle „question_bank“ hinzu. Diese Spalte sollte denselben Datentyp haben wie die Spalte „examen_id“ in der Tabelle „Prüfungen“.

Der korrigierte Code erstellt nun erfolgreich die Fremdschlüsseleinschränkung:

...
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)
);
...

Zusätzlich, wenn die Einschränkung erforderlich ist unabhängig erstellt werden kann, kann die ALTER TABLE-Anweisung verwendet werden:

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

Durch Sicherstellung der richtigen Ausrichtung von referenzierenden und referenzierten Spalten können Fremdschlüssel effektiv verwendet werden in SQL Server etabliert, um die Datenintegrität zu schützen und Inkonsistenzen zu verhindern.

Das obige ist der detaillierte Inhalt vonWarum schlägt meine SQL Server-Fremdschlüsseleinschränkung fehl und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn