Erstellen einer Fremdschlüssel in MySQL ist ein Teil der referenziellen Integrität in der Datenbank . Ein Fremdschlüssel auf Tabellen verbindet . Ein Fremdschlüssel wird in Verbindung mit einem Primär-Schlüssel , die das wichtigste Datensatz der Datenmenge verwendet wird. Zum Beispiel könnte ein Primärschlüssel eines Kunden Tabelle verwendet werden. Die Kunden-ID ist ein einzigartiges Gebiet , die deutlich identifiziert den Kunden. Ein Fremdschlüssel auf die Tabelle Orders platziert ist, verbindet , die der Kunde an seine Bestellung . Primary Key
Vor dem Erstellen eines Fremdschlüssel , eine Tabelle, ein Primärschlüssel Feld muss für die referenzielle Integrität erstellt werden hält . In diesem Beispiel können Sie die Tabelle erstellen für Kunden und Aufträge unter Verwendung des MySQL Kommandozeile werden. Die Syntax für das Erstellen einer Tabelle ist unten:
CREATE TABLE Kunde ( CustId INT NOT NULL , vorname VARCHAR ( 30) , PRIMARY KEY ( CustId ) ) TYPE = InnoDB ;
In diesem Beispiel eine Tabelle mit der "CREATE TABLE" Keyword -Anweisung. Wenn ein Primärschlüssel ist unbestimmt, kann der Programmierer weglassen Primärschlüssel Aussage , bis er auf welchem Feld , um den Schlüssel zu platzieren weiß . Allerdings ist es wichtig, für die Tabellen einen Primärschlüssel enthalten , da diese Elemente beschleunigen Leistung. In diesem Beispiel wird ein Primärschlüssel auf " CustId " Feld erzeugt . Die CustId wird verwendet, um deutlich zu identifizieren den Kunden . Außerdem, wenn die Zuweisung eines Primärschlüssel zu einer Tabelle , es muss eindeutig sein.
Foreign Key
Nun, da der Primärschlüssel erstellt wird, wird ein Fremdschlüssel erstellt am die Tabelle Orders . Auch, wenn die Datenbank -Entwickler ist unsicher über die Fremdschlüssel zum Zeitpunkt der Erstellung der Tabelle verwenden, kann es später hinzugefügt werden. Der folgende Code erstellt eine Tabelle Orders mit einem Fremdschlüssel , der auf die Tabelle Customers :
TABLE Bestellung ( orderid INT NOT NULL , Kosten INT, CustId INT NOT NULL , PRIMARY KEY ( OrderId ) , INDEX ( CustId CREATE ) , FOREIGN KEY ( CustId ) LITERATUR Kunden ( CustId ) ) TYPE = InnoDB ;
Beachten Sie, dass ein Primärschlüssel für diese Tabelle wurde ebenso mit dem OrderId , die auch ein eindeutiger Wert erstellt . Die Aussage , die den Fremdschlüssel definiert ist das letzte in der Tabelle Syntax . Es definiert den Fremdschlüssel und erzählt die Datenbank, wo seine primäre Schlüssel befindet. In diesem Beispiel ist die CustId Feld in der Tabelle Bestellungen verweist auf die CustId in der Tabelle Customers .