


MySQL-Fremdschlüsseleinschränkungen: Löschen verwaister Datensätze
Datenbanken halten häufig Beziehungen zwischen Tabellen durch Fremdschlüsseleinschränkungen aufrecht. Diese Einschränkungen stellen die Datenintegrität sicher, indem sie verwaiste Datensätze verhindern – Datensätze, die auf nicht vorhandene Daten in anderen Tabellen verweisen. In diesem Zusammenhang untersuchen wir, wie kaskadierende Löschvorgänge für Fremdschlüssel in MySQL implementiert werden.
Beispielszenario
Beachten Sie die folgenden Tabellen:
- Kategorien:ID, Name
- Produkte: ID, Name
- Kategorien_Produkte: Kategorie_ID, Produkt_ID
Die Tabelle „Kategorien_Produkte“ erstellt viele -zu-viele-Beziehung zwischen den anderen beiden Tabellen. Angenommen, wir möchten eine Kategorie löschen. Wie können wir sicherstellen, dass die entsprechenden Produkte nicht gelöscht werden, wenn sie auch anderen Kategorien zugeordnet sind?
Kaskadierende Löschvorgänge implementieren
Um das gewünschte Verhalten zu erreichen, müssen wir dies tun Richten Sie Fremdschlüsseleinschränkungen mit der ON DELETE CASCADE-Klausel ein. Bei der Definition der Spalte „foreign_key_id“ in der untergeordneten Tabelle (categories_products) können wir diese Klausel wie folgt angeben:
FOREIGN KEY (category_id) REFERENCES categories (id) ON DELETE CASCADE
Diese Klausel stellt sicher, dass beim Löschen einer Kategorie auch alle entsprechenden Datensätze in der Tabelle „categories_products“ gelöscht werden gelöscht. Die Kaskade wird jedoch nicht an die Produkttabelle weitergegeben, da dort keine Fremdschlüsseleinschränkung definiert ist.
Beispieldemonstration
Angenommen, wir haben Folgendes Daten:
-
Kategorien:
- rot, grün, blau, weiß, schwarz
-
Produkte:
- Stiefel, Fäustlinge, Mützen, Mäntel
-
categories_products:
- rote Stiefel, grüne Fäustlinge, rote Mäntel, schwarze Hüte
Wenn wir die Kategorie „rot“ löschen, werden die folgenden Aktionen ausgeführt auftreten:
- Der Kategorieeintrag „Rot“ wird aus der Kategorientabelle entfernt.
- Die Einträge „Rote Stiefel“ und „Rote Mäntel“ werden aus der Tabelle „Kategorien_Produkte“ entfernt.
- Die Kategorien „Stiefel“ und „Mäntel“ bleiben in der Kategorientabelle unberührt.
- Die Kategorien „Stiefel“ und „Fäustlinge“ bleiben bestehen in der Produkttabelle nicht betroffen.
Auf diese Weise stellt die kaskadierende Löschung die Datenintegrität sicher, indem nur die relevanten zugehörigen Datensätze entfernt werden, verwaiste Datensätze verhindert werden und die Beziehungen zwischen den Tabellen beibehalten werden.
Das obige ist der detaillierte Inhalt vonWie verhindert man verwaiste Datensätze beim Löschen von Daten mit MySQL-Fremdschlüsseleinschränkungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

In diesem Artikel wird die Optimierung von MySQL -Speicherverbrauch in Docker untersucht. Es werden Überwachungstechniken (Docker -Statistiken, Leistungsschema, externe Tools) und Konfigurationsstrategien erörtert. Dazu gehören Docker -Speichergrenzen, Tausch und CGroups neben

Dieser Artikel befasst sich mit MySQLs Fehler "Die freigegebene Bibliotheksfehler". Das Problem ergibt sich aus der Unfähigkeit von MySQL, die erforderlichen gemeinsam genutzten Bibliotheken (.SO/.dll -Dateien) zu finden. Lösungen beinhalten die Überprüfung der Bibliotheksinstallation über das Paket des Systems m

In dem Artikel werden mithilfe der Änderungstabelle von MySQL Tabellen, einschließlich Hinzufügen/Löschen von Spalten, Umbenennung von Tabellen/Spalten und Ändern der Spaltendatentypen, erläutert.

Dieser Artikel vergleicht die Installation von MySQL unter Linux direkt mit Podman -Containern mit/ohne phpmyadmin. Es beschreibt Installationsschritte für jede Methode und betont die Vorteile von Podman in Isolation, Portabilität und Reproduzierbarkeit, aber auch

Dieser Artikel bietet einen umfassenden Überblick über SQLite, eine in sich geschlossene, serverlose relationale Datenbank. Es beschreibt die Vorteile von SQLite (Einfachheit, Portabilität, Benutzerfreundlichkeit) und Nachteile (Parallelitätsbeschränkungen, Skalierbarkeitsprobleme). C

In diesem Handbuch wird die Installation und Verwaltung mehrerer MySQL -Versionen auf macOS mithilfe von Homebrew nachgewiesen. Es betont die Verwendung von Homebrew, um Installationen zu isolieren und Konflikte zu vermeiden. Der Artikel Details Installation, Starten/Stoppen von Diensten und Best PRA

In Artikel werden die Konfiguration der SSL/TLS -Verschlüsselung für MySQL, einschließlich der Erzeugung und Überprüfung von Zertifikaten, erläutert. Das Hauptproblem ist die Verwendung der Sicherheitsauswirkungen von selbstsignierten Zertifikaten. [Charakterzahl: 159]

In Artikel werden beliebte MySQL -GUI -Tools wie MySQL Workbench und PhpMyAdmin beschrieben, die ihre Funktionen und ihre Eignung für Anfänger und fortgeschrittene Benutzer vergleichen. [159 Charaktere]


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

Dreamweaver CS6
Visuelle Webentwicklungstools
