Heim Datenbank MySQL-Tutorial MySQL-Fremdschlüssel entfernen und löschen

MySQL-Fremdschlüssel entfernen und löschen

May 18, 2023 pm 12:25 PM

MySQL-Fremdschlüssel und Löschungen

MySQL ist ein häufig verwendetes relationales Datenbankverwaltungssystem, das weit verbreitet und sehr leistungsstark ist. In MySQL sind Fremdschlüssel ein sehr wichtiges Konzept und spielen eine wichtige Rolle beim Datenbankdesign und der Datenpflege. In diesem Artikel stellen wir Fremdschlüssel in MySQL vor und zeigen, wie man Fremdschlüssel zum Löschen von Daten in der Datenbank verwendet.

MySQL-Fremdschlüssel

Fremdschlüssel bezieht sich auf das Festlegen eines Schlüssels in einer Datenbanktabelle, der auf den Primärschlüssel einer anderen Tabelle verweist. Wenn eine Tabelle einen Fremdschlüssel hat, muss der Haupttabellendatensatz vorhanden sein, der jedem qualifizierten Datensatz in dieser Tabelle entspricht, andernfalls können verwandte Vorgänge nicht ausgeführt werden. Dieser Vorgang stellt die Integrität und Konsistenz der Daten zwischen Tabellen sicher.

Wir veranschaulichen das Konzept von Fremdschlüsseln anhand des folgenden Beispiels:

Tabelle Person erstellen:

CREATE TABLE person (
    id INT PRIMARY KEY,
    name VARCHAR(20)
);
Nach dem Login kopieren

Tabellenkarte erstellen:

CREATE TABLE card (
    id INT PRIMARY KEY,
    person_id INT,
    card_no VARCHAR(20),
    FOREIGN KEY(person_id) REFERENCES person(id)
);
Nach dem Login kopieren

In der Tabellenkarte ist person_id ein Fremdschlüssel, der auf das ID-Feld in der Tabelle Person verweist. Der Zweck dieses Fremdschlüssels besteht darin, sicherzustellen, dass die person_id in jedem Kartendatensatz in der Personentabelle vorhanden ist, und so Konsistenz und Integrität sicherzustellen.

Verwenden Sie Fremdschlüssel zum Löschen

Wenn wir in der Datenbank löschen und eine Beziehung zwischen Tabellen besteht, müssen wir sicherstellen, dass der Löschvorgang die Integrität und Konsistenz der Datenbank nicht zerstört. In MySQL kann dies mithilfe von Fremdschlüsseln erreicht werden.

Wenn beim Ausführen eines Löschvorgangs der zu löschende Datensatz in einer Tabelle vorhanden ist, die einem Fremdschlüssel zugeordnet ist, müssen Sie zuerst den Datensatz in der zugehörigen Tabelle und dann den Datensatz in dieser Tabelle löschen. Dieser Vorgang kann mit ON DELETE CASCADE und ON DELETE SET NULL erreicht werden.

ON DELETE CASCADE funktioniert durch automatisches Klassifizieren und Löschen verwandter Datensätze in dieser Tabelle, wenn Datensätze in der zugehörigen Tabelle gelöscht werden. Beispiel:

CREATE TABLE person (
    id INT PRIMARY KEY,
    name VARCHAR(20)
);

CREATE TABLE card (
    id INT PRIMARY KEY,
    person_id INT,
    card_no VARCHAR(20),
    FOREIGN KEY(person_id) REFERENCES person(id) ON DELETE CASCADE
);

INSERT INTO person(id, name) VALUES(1, 'Tom');

INSERT INTO card(id, person_id, card_no) VALUES(1, 1, '123456');

DELETE FROM person WHERE id = 1;
Nach dem Login kopieren

Im obigen Beispiel haben wir zuerst einen Datensatz in die Personentabelle und dann einen Datensatz in die Kartentabelle eingefügt. Dieser Datensatz verweist auf den Datensatz mit der ID 1 in der Personentabelle. Schließlich haben wir die DELETE-Anweisung verwendet, um den Datensatz mit der ID 1 in der Personentabelle zu löschen. Durch diesen Löschvorgang werden auch die zugehörigen Datensätze in der Kartentabelle automatisch gelöscht.

Bei der Operation ON DELETE SET NULL wird der zugehörige Datensatz in dieser Tabelle auf NULL gesetzt, wenn der Datensatz in der zugehörigen Tabelle gelöscht wird. Beispiel:

CREATE TABLE person (
    id INT PRIMARY KEY,
    name VARCHAR(20)
);

CREATE TABLE card (
    id INT PRIMARY KEY,
    person_id INT,
    card_no VARCHAR(20),
    FOREIGN KEY(person_id) REFERENCES person(id) ON DELETE SET NULL
);

INSERT INTO person(id, name) VALUES(1, 'Tom');

INSERT INTO card(id, person_id, card_no) VALUES(1, 1, '123456');

DELETE FROM person WHERE id = 1;
Nach dem Login kopieren

Im obigen Beispiel haben wir zuerst einen Datensatz in die Personentabelle und dann einen Datensatz in die Kartentabelle eingefügt. Dieser Datensatz verweist auf den Datensatz mit der ID 1 in der Personentabelle. Schließlich haben wir die DELETE-Anweisung verwendet, um den Datensatz mit der ID 1 in der Personentabelle zu löschen. Durch diesen Löschvorgang wird die person_id im zugehörigen Datensatz in der Kartentabelle automatisch auf NULL gesetzt.

Zusammenfassung

MySQL-Fremdschlüssel sind ein sehr wichtiges Konzept und spielen eine wichtige Rolle beim Datenbankdesign und der Datenpflege. Durch die Verwendung von Fremdschlüsseln kann die Integrität und Konsistenz der Daten zwischen Tabellen sichergestellt werden. Wenn Sie einen Löschvorgang ausführen, können Sie ON DELETE CASCADE und ON DELETE SET NULL verwenden, um die Zuordnung zwischen Tabellen zu handhaben und so die Datenbankkonsistenz sicherzustellen.

Das obige ist der detaillierte Inhalt vonMySQL-Fremdschlüssel entfernen und löschen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Mar 19, 2025 pm 03:51 PM

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.

Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen? Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen? Mar 18, 2025 pm 12:01 PM

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]

Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)? Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)? Mar 21, 2025 pm 06:28 PM

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]

Wie behandeln Sie große Datensätze in MySQL? Wie behandeln Sie große Datensätze in MySQL? Mar 21, 2025 pm 12:15 PM

In Artikel werden Strategien zum Umgang mit großen Datensätzen in MySQL erörtert, einschließlich Partitionierung, Sharding, Indexierung und Abfrageoptimierung.

Erläutern Sie InnoDB Volltext-Suchfunktionen. Erläutern Sie InnoDB Volltext-Suchfunktionen. Apr 02, 2025 pm 06:09 PM

Die Volltext-Suchfunktionen von InnoDB sind sehr leistungsfähig, was die Effizienz der Datenbankabfrage und die Fähigkeit, große Mengen von Textdaten zu verarbeiten, erheblich verbessern kann. 1) InnoDB implementiert die Volltext-Suche durch invertierte Indexierung und unterstützt grundlegende und erweiterte Suchabfragen. 2) Verwenden Sie die Übereinstimmung und gegen Schlüsselwörter, um den Booleschen Modus und die Phrasesuche zu unterstützen. 3) Die Optimierungsmethoden umfassen die Verwendung der Word -Segmentierungstechnologie, die regelmäßige Wiederaufbauung von Indizes und die Anpassung der Cache -Größe, um die Leistung und Genauigkeit zu verbessern.

Wie lassen Sie eine Tabelle in MySQL mit der Drop -Tabelle -Anweisung fallen? Wie lassen Sie eine Tabelle in MySQL mit der Drop -Tabelle -Anweisung fallen? Mar 19, 2025 pm 03:52 PM

In dem Artikel werden in MySQL die Ablagerung von Tabellen mithilfe der Drop -Tabellenerklärung erörtert, wobei Vorsichtsmaßnahmen und Risiken betont werden. Es wird hervorgehoben, dass die Aktion ohne Backups, die Detaillierung von Wiederherstellungsmethoden und potenzielle Produktionsumfeldgefahren irreversibel ist.

Wie repräsentieren Sie Beziehungen mit fremden Schlüsseln? Wie repräsentieren Sie Beziehungen mit fremden Schlüsseln? Mar 19, 2025 pm 03:48 PM

In Artikeln werden ausländische Schlüssel zur Darstellung von Beziehungen in Datenbanken erörtert, die sich auf Best Practices, Datenintegrität und gemeinsame Fallstricke konzentrieren.

Wie erstellen Sie Indizes für JSON -Spalten? Wie erstellen Sie Indizes für JSON -Spalten? Mar 21, 2025 pm 12:13 PM

In dem Artikel werden in verschiedenen Datenbanken wie PostgreSQL, MySQL und MongoDB Indizes für JSON -Spalten in verschiedenen Datenbanken erstellt, um die Abfrageleistung zu verbessern. Es erläutert die Syntax und die Vorteile der Indizierung spezifischer JSON -Pfade und listet unterstützte Datenbanksysteme auf.

See all articles