Als ich heute Navicat für MySQL zum Entwerfen der Tabelle verwendet habe, standen beim Festlegen des Fremdschlüssels beim Löschen und Aktualisieren in den beiden Spalten vier Werte zur Auswahl: CASCADE, NO ACTION, RESTRICT und SET NULL. Ich habe sie alle selbst ausprobiert, ihre Unterschiede sind wie folgt:
CASCADE: Wenn die übergeordnete Tabelle gelöscht und aktualisiert wird, löscht und aktualisiert die untergeordnete Tabelle die zugehörigen Datensätze;
SET NULL: Wenn die übergeordnete Tabelle löscht und Aktualisierungen, die untergeordnete Tabelle löscht und aktualisiert die zugehörigen Datensätze. Die Spalte des Fremdschlüsselfelds des Datensatzes ist auf Null gesetzt. Beachten Sie daher, dass der Fremdschlüssel beim Entwerfen der untergeordneten Tabelle nicht auf nicht null gesetzt werden kann Sind Datensätze mit der übergeordneten Tabelle in der untergeordneten Tabelle verknüpft, verhindert RESTRICT (Einschränkung) das Löschen von Datensätzen der übergeordneten Tabelle , KEINE AKTION
Löschen: Beim Löschen der Master-Tabelle wird die Slave-Tabelle automatisch auf NULL aktualisiert, die Slave-Tabelle gelöscht und die Master-Tabelle bleibt unverändert. | Aktualisieren: Aktualisieren Sie den Slave-Tabellenwert automatisch auf NULL, wenn Sie die Master-Tabelle aktualisieren. Aktualisieren Sie die Slave-Tabelle und lassen Sie die Master-Tabelle unverändert. |
Hier ein kleines Beispiel zum besseren Verständnis: | (1) Im Datenbank-Bookshop habe ich eine neue Tabelle a wie folgt erstellt: |
Fremdschlüssel festlegen: |
(3) Fügen Sie Datensätze wie folgt in die Tabellen a und b ein:
Hier: Das Feld id2 der Tabelle a ist ein Fremdwort Schlüsselfeld, beziehen Sie sich auf den Primärschlüssel von Tabelle B, sodass Tabelle B die übergeordnete Tabelle und Tabelle A die untergeordnete Tabelle ist. Wenn Sie dann die Fremdschlüssel von Tabelle A festlegen, können Sie die von mir erwähnte Schlussfolgerung ziehen über.
Das obige ist der detaillierte Inhalt vonWas sind CASCADE, NO ACTION, RESTRICT und SET NULL in den MySQL-Fremdschlüsseleinstellungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!