Heim >Datenbank >MySQL-Tutorial >Warum schlägt meine SQL Server-Fremdschlüsseleinschränkung fehl und wie kann ich das Problem beheben?
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!