Die Rolle von FremdschlüsselnDie Aufrechterhaltung der Datenkonsistenz und -integrität sowie die Kontrolle der in der Fremdschlüsseltabelle gespeicherten Daten sind der Hauptzweck. Um zwei Tabellen zu verknüpfen, kann der Fremdschlüssel nur auf die Werte der Spalten in der Fremdtabelle verweisen! Zum Beispiel: ab zwei Tische Tabelle A enthält Kundennummer und Kundenname Tabelle b speichert die Bestellungen jedes Kunden. Mit Fremdschlüsseln Sie können Kunde x erst dann aus Tabelle a löschen, wenn Sie sicher sind, dass in Tabelle b keine Bestellungen für Kunde x vorhanden sind. Voraussetzungen für die Festlegung eines Fremdschlüssels: Die Spalten dieser Tabelle müssen vom gleichen Typ sein wie der Fremdschlüssel (der Fremdschlüssel muss der Primärschlüssel der Fremdtabelle sein). Geben Sie das Primärschlüsselwort an: Fremdschlüssel (Spaltenname) Referenz-Fremdschlüsselwörter: verweist auf <Fremdschlüsseltabellenname> (Fremdschlüsselspaltenname) Einschränkungen für Ereignisauslöser: Beim Löschen und Aktualisieren können Parameter kaskadiert werden (Fremdschlüsseländerungen verfolgen), eingeschränkt werden (Fremdschlüsseländerungen in der Tabelle einschränken), Null gesetzt werden (Nullwert setzen), Standard gesetzt werden (Standardwert setzen), [Standard] keine Aktion Zum Beispiel: outTable Tabelle Primärschlüssel ID Typ int Erstellen Sie eine Tabelle mit einem Fremdschlüssel: Tabelle temp erstellen( Ich würde int, Name char(20), Fremdschlüssel (ID) verweist auf outTable(ID) bei Löschkaskade und Aktualisierungskaskade); Hinweis: Legen Sie die ID-Spalte als Fremdschlüssel fest, um auf die ID-Spalte der Fremdtabelle outTable zu verweisen. Wenn der Wert des Fremdschlüssels gelöscht wird, wird die entsprechende Spalte in dieser Tabelle herausgefiltert. Wenn der Wert des Fremdschlüssels geändert wird, wird der entsprechende Spaltenwert in dieser Tabelle geändert. MySQL-Fremdschlüssel-EinstellungsmethodeMySQL-Methode zum Festlegen von Fremdschlüsseln / Beim Erstellen eines Index können Sie die entsprechende Operation angeben, die beim Löschen/Aktualisieren der übergeordneten Tabelle an der untergeordneten Tabelle ausgeführt werden soll. Beinhaltet: Einschränken, Kaskadieren, Auf Null und keine Aktion setzen, Standard festlegen.
Gehen Sie bei der Auswahl von „Set Null“, „SetDefault“ und „Cascade“ vorsichtig vor, da falsche Vorgänge zu Datenverlust führen können. Wenn die obige Beschreibung nicht klar genug ist, sehen Sie sich bitte das folgende Beispiel an. Die Ländertabelle ist die übergeordnete Tabelle, country_id ist der Primärschlüssel, city ist die untergeordnete Tabelle und der Fremdschlüssel ist country_id, was dem Primärschlüssel country_id der Ländertabelle entspricht. Tabelle Land erstellen( country_id smallint unsigned nicht null auto_increment, Land varchar(50) nicht null, last_update Zeitstempel nicht null Standard current_timestamp beim Update current_timestamp, Primärschlüssel (Länder-ID) )engine=INNODB Standard-Zeichensatz=utf8; CREATE TABLE `Stadt` ( `city_id` smallint(5) unsigned NICHT NULL auto_increment, `Stadt` varchar(50) NICHT NULL, `country_id` smallint(5) unsigned NICHT NULL, `last_update` Zeitstempel NICHT NULL Standard CURRENT_TIMESTAMP beim Update CURRENT_TIMESTAMP, PRIMÄRSCHLÜSSEL (`city_id`), SCHLÜSSEL `idx_fk_country_id` (`country_id`), CONSTRAINT `fk_city_country` FOREIGN KEY (`country_id`) REFERENZEN `country` (`country_id`) beim Löschen einschränken ON UPDATE CASCADE )ENGINE=InnoDB STANDARD-CHARSET=utf8; Beispielsweise wird für die beiden oben neu erstellten Tabellen der Fremdschlüssel der Untertabelle wie folgt angegeben: „on delete restrict ON UPDATE CASCADE mode“. Wenn die Haupttabelle Datensätze löscht und die Untertabelle entsprechende Datensätze hat, ist das Löschen nicht zulässig. Wenn die Haupttabelle Datensätze aktualisiert und die Untertabelle übereinstimmende Datensätze hat, werden die entsprechenden Datensätze in der Untertabelle entsprechend aktualisiert. z.B: in Länderwerte einfügen (1, „wq“, „jetzt“); wählen Sie * aus Land; in Stadtwerte einfügen (222, „Tom“, 1, jetzt ()); wählen Sie * aus der Stadt; Löschen aus dem Land, in dem country_id=1 ist; Land aktualisieren, country_id=100 festlegen, wobei country_id=1; Wählen Sie * aus dem Land, in dem Land = "wq" ist. Wählen Sie * aus der Stadt, wo Stadt = "Tom" ist; ZusammenfassenDies ist das Ende dieses Artikels zum Festlegen von MySQL-Fremdschlüsseln. Weitere Informationen zum Festlegen von MySQL-Fremdschlüsseln finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung des Unterschieds zwischen var, let und const in JavaScript
>>: Eine kurze Analyse der Verwendung des HTML-Webpack-Plugins
Vorwort MySQL setzte auch 2016 seinen starken Wac...
Von: https://blog.csdn.net/qq_44761243/article/de...
Inhaltsverzeichnis 1. Was ist die Anti-Shake-Funk...
Inhaltsverzeichnis Vorwort Kommunikation zwischen...
Vorwort Das Wesen eines Deadlocks ist Ressourcenw...
Vue kapselt die Breadcrumb-Komponente zu Ihrer In...
Vorwort Dieser Artikel stellt hauptsächlich den r...
In diesem Artikelbeispiel wird der spezifische Ja...
Kriegspaket vorbereiten 1. Bereiten Sie das vorha...
In diesem Artikel wird die Konsistenzverarbeitung...
Es gibt erhebliche Unterschiede zwischen CentOS7 ...
Dieses Tutorial beschreibt den Prozess der manuel...
Inhaltsverzeichnis 1. Einführung in Binlog 2. Bin...
Better-Scroll-Bildlaufprinzip Als übergeordneter ...
Inhaltsverzeichnis Was ist Index-Pushdown? Das Pr...