Dieser Artikel vermittelt Ihnen relevantes Wissen über MySQL, das hauptsächlich Probleme im Zusammenhang mit Fremdschlüsseleinschränkungen (Foreign Key) durch eine Spalte zwischen zwei Datentabellen in der Datenbank organisiert in der Regel durch Felder verursacht, die in tatsächlichen Szenarien genau die gleiche Bedeutung haben. Schauen wir sie uns gemeinsam an. Ich hoffe, dass es für alle hilfreich ist.
Empfohlenes Lernen: MySQL-Video-Tutorial
Fremdschlüsseleinschränkungen (Foreign Key) sind eine Beziehung, die durch eine Spalte zwischen zwei Datentabellen in der Datenbank hergestellt wird. Dieser Zusammenhang wird in der Regel durch Felder verursacht, die in tatsächlichen Szenarien genau die gleiche Bedeutung haben. Durch die Einführung von Fremdschlüsseleinschränkungen kann MySQL die Datenintegrität in der Datentabelle stärken und konsistenter mit der Anzeigesituation machen. Im Folgenden gebe ich ein Beispiel, um die Rolle von MySQL-Fremdschlüsseleinschränkungen zu veranschaulichen.
Wenn wir eine Datenbank für das Leistungsmanagementsystem für Universitätsstudenten erstellen, gibt es zwei Tabellen, die Studententabelle, in der die Studentennummer, der Name, das Geschlecht, die Abteilung und andere Informationen gespeichert sind, und die andere Tabelle ist die Notentabelle , das Informationen wie Studentenausweisnummer, Kursnummer, Testergebnisse usw. speichert. Auf diese Weise wird eine Fremdschlüsselbeschränkung zwischen den beiden Tabellen durch die Studentennummer hergestellt. Es ist für uns selbstverständlich zu glauben, dass die Studenten-ID-Nummer in der Zeugnistabelle von der Existenz der Studenten-ID-Nummer in der Studententabelle abhängt. Wenn ein Student seinen Abschluss macht oder sein Studium abbricht und aus der Studententabelle gelöscht wird, dann gilt dies auch für ihn Noten sind in der Zeugnistabelle nicht erforderlich. Bevor eine Fremdschlüsselbeziehung erstellt wird, existieren diese beiden Tabellen völlig unabhängig voneinander. Wir können eine zugehörige Punktzahl eines nicht vorhandenen Schülers zwangsweise in die Punktetabelle einfügen oder einen Schüler in der Schülertabelle löschen, unabhängig von den Punkteinformationen. Ob es im Punkteblatt vorhanden ist. Nach dem Einrichten einer Fremdschlüsselbeziehung schränkt die MySQL-Datenbank jedoch die beiden oben genannten Verhaltensweisen ein. Jedes Mal, wenn Daten eingefügt oder gelöscht werden, wird die Datenintegrität überprüft, sodass unsere Vorgänge der tatsächlichen Situation entsprechen müssen.
Die Erstellung von Fremdschlüsseln in der MySQL-Datenbank muss die folgenden vier Bedingungen erfüllen, andernfalls wird sie von der MySQL-Datenbank abgelehnt:
1. Fremdschlüssel erstellen. Die Tabellen und Spalten sind vorhanden. 2. Die Spalten, aus denen der Fremdschlüssel besteht, sind in Indizes vorhanden. 3. Die Engine der Datentabelle muss als InnoDB angegeben werden. 4. Die Datentypen der Fremdschlüsselfelder und der zugehörigen Felder Felder müssen konsistent sein Fremdschlüsselfeld dieser Tabelle nach der Erstellungsanweisung der Datentabelle und verwenden Sie das Referenzschlüsselwort, um das Fremdschlüsselfeld der zugehörigen Tabelle anzugeben. Ordnen Sie einfach die Felder zu und schränken Sie das Verhalten klar ein.
Ein Beispiel für eine SQL-Anweisung zum Erstellen einer Fremdschlüsseleinschränkung lautet wie folgt:
create table student (id int(8),name varchar(20),department varchar(20) ,index (id))ENGINE=InnoDB; create table grade (Sid int(8),Cid int(10),score int,index(Sid),foreign key (Sid) references student(id) on delete restrict on update cascade)ENGINE=InnoDB;
drop table grade; create table grade(Sid int(8),Cid int(10),score int); alter table grade add index(Sid); alter table grade add foreign key (Sid) references student(id) on delete restrict on update cascade;
Die Ausführung Die Ergebnisse sind wie folgt:
Als nächstes testen wir die Funktion der Fremdschlüssel-Einschränkung. Versuchen Sie zunächst, die Note eines nicht vorhandenen Schülers in die Notentabelle einzufügen, und finden Sie diese heraus Es wurde abgelehnt:
Versuchen Sie dann, die Schülertabelle zu löschen. Es wurde festgestellt, dass Schüler mit Noten in abgelehnt wurden:
Als Nächstes haben wir die Kaskadenaktualisierungsfunktion für MySQL-Fremdschlüsseleinschränkungen getestet und festgestellt, dass, wenn die Daten in der Wenn sich die Schülertabelle ändert, ändert sich auch die Notentabelle, wie unten gezeigt:MySQL-Video-Tutorial
Das obige ist der detaillierte Inhalt vonZusammenfassung der Wissenspunkte zu MySQL-Fremdschlüsseleinschränkungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!