Heim > Datenbank > MySQL-Tutorial > Wie erstelle ich einen Fremdschlüssel für eine Nicht-Primärschlüsselspalte?

Wie erstelle ich einen Fremdschlüssel für eine Nicht-Primärschlüsselspalte?

Linda Hamilton
Freigeben: 2025-01-15 09:46:43
Original
522 Leute haben es durchsucht

How to Create a Foreign Key to a Non-Primary Key Column?

Erstellen Sie einen Fremdschlüssel, der auf einen Nicht-Primärschlüssel verweist

Frage:

Wie kann die referenzielle Integrität aufrechterhalten werden, indem ein Fremdschlüssel erstellt wird, der auf eine Nicht-Primärschlüsselspalte in einer anderen Tabelle verweist?

Antwort:

Während es im Allgemeinen empfohlen wird, beim Erstellen eines Fremdschlüssels auf einen Primärschlüssel zu verweisen, ist es unter bestimmten Bedingungen möglich, einen Fremdschlüssel zu erstellen, der auf einen Nicht-Primärschlüssel verweist.

Lösung:

Um einen Fremdschlüssel zu erstellen, der auf einen Nicht-Primärschlüssel verweist, muss eine eindeutige Einschränkung auf die Zielspalte in der referenzierten Tabelle angewendet werden. Das bedeutet, dass die Werte in der Spalte eindeutig sein müssen, um die Datenintegrität sicherzustellen.

Beispiel:

Beachten Sie die folgende Tabellenstruktur:

<code class="language-sql">CREATE TABLE table1 (
   ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
   AnotherID INT NOT NULL,
   SomeData VARCHAR(100) NOT NULL
);

CREATE TABLE table2 (
   ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
   AnotherID INT NOT NULL,
   MoreData VARCHAR(30) NOT NULL,

   CONSTRAINT fk_table2_table1 FOREIGN KEY (AnotherID) REFERENCES table1 (AnotherID)
);</code>
Nach dem Login kopieren

In diesem Beispiel ist die AnotherID-Spalte in Tabelle1 kein Primärschlüssel. Es gibt jedoch eine eindeutige Einschränkung, die es uns ermöglicht, mithilfe der AnotherID-Spalte eine Fremdschlüsselbeziehung zwischen Tabelle2 und Tabelle1 zu erstellen.

Alternative:

Wenn Sie keine eindeutige Einschränkung für eine Nicht-Primärschlüsselspalte erstellen können, sollten Sie stattdessen den Primärschlüssel der referenzierten Tabelle als Fremdschlüssel verwenden. Diese Methode gewährleistet eine stärkere Datenbankintegrität und wird allgemein empfohlen.

Das obige ist der detaillierte Inhalt vonWie erstelle ich einen Fremdschlüssel für eine Nicht-Primärschlüsselspalte?. 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