Merkmale von ausländischen Schlüsselbeschränkungen:
Einige wichtige Merkmale von Fremdschlüsseleinschränkungen werden unten erläutert.
Voraussetzung:
Bevor Sie eine Fremdschlüsselbeschränkung erstellen, müssen Sie eine Datenbank- und übergeordnete Tabelle mit dem Primärschlüssel erstellen. Angenommen, der Datenbankname ist ''Bibliothek"Und es enthält zwei übergeordnete Tische benannt"Bücher' Und 'Kreditnehmer''. Machen Sie eine Verbindung mit MySQL Server mit dem Mysql Client und führen Sie die folgenden SQL -Anweisungen aus, um die Datenbank und die Tabellen zu erstellen.
Datenbankbibliothek erstellen;Definieren Sie fremde Schlüsselbeschränkungen mithilfe der Erstellung der Erstellung
Erstellen Sie eine Tabelle mit dem Namen 'book_borrow_info'Mit fremden Schlüsselbeschränkungen durch Ausführung der folgenden Erklärung. Hier das book_id Feld ist a Unbekannter Schlüssel Für diese Tabelle muss und jeder Wert dieses Feldes in der vorhanden sein Ausweis Bereich Bücher Tisch. Bücher ist die übergeordnete Tabelle und book_borrow_info ist der Kindertisch. Zwei Einschränkungen werden auch hier mit dem Fremdschlüssel festgelegt. Diese sind Kaskade löschen Und Aktualisieren Sie die Kaskade. Das heißt, wenn ein Primärschlüssel aus der übergeordneten Tabelle entfernen oder aktualisiert wird, werden die entsprechenden Aufzeichnungen, die sich auf die Tabelle des Fremdschlüssels beziehen, entfernt oder der Fremdschlüssel wird aktualisiert.
Erstellen Sie Table book_borrow_info (Führen Sie nun die folgenden SQL -Anweisungen aus, um einige Datensätze in beide Tabellen einzufügen. In der ersten Anweisung Einfügen wird vier Datensätze in die Bücher Tisch. Die vier Werte von Ausweis Bereich Bücher Die Tabelle beträgt 1, 2, 3 und 4 für das Auto-Increment-Attribut. In der zweiten Anweisung Einfügungsanweisung wird vier Datensätze eingefügt in book_borrow_info basierend auf Ausweis Wert von Bücher Tisch.
In Bücherwerte einfügenWenn Sie versuchen, einen Wert in das Feld Fremdschlüssel der untergeordneten Tabelle einzufügen, die im Primärschlüsselfeld der übergeordneten Tabelle nicht vorhanden ist, generiert MySQL einen Fehler. Die folgende SQL -Anweisung generiert einen Fehler, da die übergeordnete Tabelle, Bücher Enthält keinen ID -Wert 10.
Fügen Sie in book_borrow_info -Werte einNach der Ausführung der folgenden Löschanweisung, wenn der vierte Datensatz aus dem entfernt wird Bücher Tabelle dann die zugehörigen Datensätze aus dem book_borrow_info Die Tabelle wird automatisch für die Fremdschlüsselbeschränkungen entfernt.
Aus Büchern löschen, wobei ID = 4;Definieren Sie die Einschränkung der Fremdschlüssel mithilfe der Änderungserklärung
Fügen Sie zunächst einige Datensätze in ein Kreditnehmer Tabelle und diese Tabelle werden in der nächsten als übergeordnete Tabelle definiert ÄNDERN Stellungnahme.
Einfügen in die Werte von Kreditnehmern einLeiten Sie Folgendes aus ÄNDERN Aussage, um eine weitere fremde Schlüsselbeschränkung für festzulegen book_borrow_info Tabelle, um die Beziehung mit Kreditnehmer Tisch. Hier, liehen_id ist definiert als ein fremder Schlüssel für book_borrow_info Tisch.
Alter table book_borrow_info Hinzufügen von Einschränkungen fk_borlower
Ausländische Key (borrow_id) Referenzen Kreditnehmer (ID) auf Löschen von Kaskade auf dem Update -Einschränkung;
Fügen Sie nun einen Datensatz in ein book_borrow_info mit gültig liehen_id Wert, der existiert in Ausweis Bereich Kreditnehmer Tisch. 157643 Der Wert gibt es in der Tabelle der Kreditnehmer, und die folgende Einfügungsanweisung wird erfolgreich ausgeführt.
Fügen Sie in book_borrow_info -Werte einIn der folgenden Einfügeanweisung wird eine Fehlermeldung wegen des ID -Werts generiert 195680 existiert in Kreditnehmern Tisch nicht.
Fügen Sie in book_borrow_info -Werte einAbschluss:
Das ordnungsgemäße Definieren von ausländischen Schlüsselbeschränkungen ist eine sehr wichtige Aufgabe, um eine relationale Datenbank zu erstellen und Daten unter den Tabellen angemessen zu verwalten. Die Verwendung von Fremdschlüsseleinschränkungen zu kennen, ist für Datenbankdesigner sehr wichtig. Ich hoffe.