Vorwort Beim Anlegen der Primär- und Fremdschlüssel für eine MySQL-Tabelle müssen Sie folgende Punkte beachten:
1. SQL-Anweisung zum Erstellen einer Datentabelle und Festlegen der Primär- und Fremdschlüsselbeziehung Tabelle demo.ChineseCharInfo erstellen ( ID int ungleich null auto_increment, Hanzi varchar(10) nicht null, Primärschlüssel (ID) ) Engine=InnoDB Auto_Increment=1 Standard-Zeichensatz=UTF8 Sortierung=UTF8_General_CI; Tabelle demo erstellen.ChinesePinyinInfo ( ID int ungleich null auto_increment, CharID int null, Pinyin varchar(10) null, Ton tinyint unsigned null, Primärschlüssel (ID), -- Methode 1: Geben Sie keinen Fremdschlüsselnamen an, die Datenbank generiert automatisch einen Fremdschlüssel (CharID), der ChineseCharInfo(ID) bei Löschkaskade und Aktualisierungskaskade referenziert -- Methode 2: Geben Sie den Fremdschlüsselnamen (FK_Name) an -- Einschränkung FK_Name Fremdschlüssel (CharID) verweist auf ChineseCharInfo(ID) bei Löschkaskade bei Aktualisierungskaskade ) Engine=InnoDB Auto_Increment=1 Standard-Zeichensatz=UTF8 Sortierung=UTF8_General_CI; 2. Wenn die Datentabelle bereits vorhanden ist, verwenden Sie die folgende Methode, um die Primär- und Fremdschlüsselbeziehung herzustellen -- Fügen Sie dem Feld (CharID) in der Tabelle (demo.ChinesePinyinInfo) einen Fremdschlüssel hinzu und geben Sie den Fremdschlüsselnamen als (FK_Name) an. Tabelle demo.ChinesePinyinInfo ändern, Einschränkung FK_Name hinzufügen, Fremdschlüssel (CharID) verweist auf ChineseCharInfo(ID); -- Fügen Sie dem Feld (CharID) in der Tabelle (demo.ChinesePinyinInfo) einen Fremdschlüssel hinzu. Geben Sie den Fremdschlüsselnamen nicht an. Die Datenbank generiert den Fremdschlüsselnamen automatisch. alter table demo.ChinesePinyinInfo add foreign key (CharID) references ChineseCharInfo(ID); 3. Löschen Sie Primär- und Fremdschlüsseleinschränkungen - Löschen Sie die automatische Inkrementierung, indem Sie die Spalteneigenschaften ändern. Die erste (ID) ist der ursprüngliche Spaltenname und die zweite (ID) ist der neue Spaltenname. alter table demo.ChinesePinyinInfo change ID ID int not null; -- Löschen Sie die Primärschlüsseleinschränkung in der Tabelle (demo.ChinesePinyinInfo). Wenn die Primärschlüsselspalte eine Autoinkrementspalte ist, müssen Sie zuerst das Autoinkrement der Spalte löschen. alter table demo.ChinesePinyinInfo drop primary key; -- Löschen Sie den Fremdschlüssel mit dem Namen (FK_Name) in der Tabelle (demo.ChinesePinyinInfo) „alter table demo.ChinesePinyinInfo drop foreign key FK_Name“; 4. Einschränkungen von Primär- und Fremdschlüsselbeziehungen Wenn die untergeordnete Tabelle versucht, einen Fremdschlüsselwert zu erstellen, der in der primären Tabelle nicht vorhanden ist, lehnt die Datenbank alle Einfüge- oder Aktualisierungsvorgänge ab. Wenn die Primärtabelle versucht, vorhandene oder übereinstimmende Fremdschlüsselwerte in der untergeordneten Tabelle zu aktualisieren oder zu löschen, hängt die endgültige Aktion von den Optionen „Beim Löschen“ und „Beim Aktualisieren“ in der Definition der Fremdschlüsseleinschränkung ab. Sowohl beim Löschen als auch beim Aktualisieren gibt es die folgenden vier Aktionen.
Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Die Umsetzung von Youdas neuem Petite-Vue
>>: Zabbix konfiguriert DingTalks Alarmfunktion mit Bildern
Anforderung: Bei der Anzeige von Daten in einer L...
Leerer Link: Das heißt, es besteht keine Verbindu...
Inhaltsverzeichnis 1. classList-Attribut 2. Prakt...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis Klassisches Beispiel für einen...
Das Docker-Repository selbst ist sehr langsam, ab...
Ich habe kürzlich bei der Arbeit eine mobile Seit...
Ergebnis:Implementierungscode html <div Klasse...
mysql ruft alle Daten oder Monate in einem Zeitra...
Die Tabellenstruktur ist wie folgt. Es gibt nur 6...
Inhaltsverzeichnis 1. Verwendung von DATETIME und...
Voraussetzung: content="width=750" <...
Um Kernelmodule in CentOS automatisch zu laden, k...
Während der Systemwartung müssen Sie möglicherwei...
Ein Kollege meldete, dass eine MySQL-Instanz aufg...