Heim > Datenbank > MySQL-Tutorial > Wie behebt man Fremdschlüsseleinschränkungsfehler in SQL Server beim Erstellen von Tabellen?

Wie behebt man Fremdschlüsseleinschränkungsfehler in SQL Server beim Erstellen von Tabellen?

Linda Hamilton
Freigeben: 2024-12-30 13:07:10
Original
793 Leute haben es durchsucht

How to Resolve Foreign Key Constraint Errors in SQL Server When Creating Tables?

Erstellen von Fremdschlüsseln in SQL Server

Bei der Datenbankverwaltung handelt es sich um die Erstellung von Verbindungen zwischen Tabellen, um die Datenintegrität aufrechtzuerhalten. Eine Möglichkeit, dies zu erreichen, ist die Verwendung von Fremdschlüsseln. SQL Server verwendet eine spezielle Syntax zum Deklarieren von Fremdschlüsseleinschränkungen und unterscheidet sich dadurch von anderen Datenbanksystemen wie PostgreSQL.

Syntaxprobleme und -lösung

Das bereitgestellte SQL-Skript zielt auf die Erstellung ab drei Tabellen: exams, questions_bank und anwser_bank, wobei die Tabelle questions_bank unter Verwendung einer Fremdschlüsseleinschränkung auf die Tabelle exams verweist. Bei der Ausführung tritt jedoch ein Fehler auf:

Msg 8139, Level 16, State 0, Line 9
Number of referencing columns in
foreign key differs from number of
referenced columns, table
'question_bank'.
Nach dem Login kopieren

Der Fehler wird erklärt

Dieser Fehler weist auf eine Nichtübereinstimmung zwischen der Anzahl der Spalten hin, auf die in der Fremdschlüsseldeklaration verwiesen wird, und die Anzahl der Spalten in der referenzierten Tabelle. Im bereitgestellten Skript verweist die Fremdschlüsseleinschränkung in der Tabelle questions_bank auf die Spalte exam_id in Prüfungen, aber die referenzierte Tabelle verfügt nicht über eine Spalte mit dem Namen exam_id.

Korrektur der Fremdschlüsseleinschränkung

Um das Problem zu beheben, muss die Fremdschlüsseldeklaration aktualisiert werden, um auf die richtige Spalte zu verweisen, nämlich exam_id in der Tabelle Prüfungen.

create table question_bank
(
    question_id uniqueidentifier primary key,
    question_exam_id uniqueidentifier not null, -- References "exam_id" in table "exams"
    question_text varchar(1024) not null,
    question_point_value decimal,
    constraint FK_question_bank_exam_id foreign key references exams(exam_id)
);
Nach dem Login kopieren

Alternative Syntax

Bei Bedarf kann die Fremdschlüsseleinschränkung mit der ALTER TABLE-Anweisung erstellt werden, die die Flexibilität bietet, die Einschränkung danach hinzuzufügen Die Tabelle wurde erstellt:

alter table question_bank
add constraint FK_question_bank_exam_id FOREIGN KEY ( question_exam_id ) references exams(exam_id)
Nach dem Login kopieren

Dieser Ansatz ermöglicht eine detailliertere Kontrolle über die Benennung und das Timing von Einschränkungen Schöpfung.

Das obige ist der detaillierte Inhalt vonWie behebt man Fremdschlüsseleinschränkungsfehler in SQL Server beim Erstellen von Tabellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage