Heim > Datenbank > MySQL-Tutorial > Wie ändere ich die ON DELETE-Aktion eines Fremdschlüssels von CASCADE in RESTRICT?

Wie ändere ich die ON DELETE-Aktion eines Fremdschlüssels von CASCADE in RESTRICT?

Patricia Arquette
Freigeben: 2024-12-01 00:59:11
Original
854 Leute haben es durchsucht

How to Change a Foreign Key's ON DELETE Action from CASCADE to RESTRICT?

Ändern der referenziellen Fremdschlüsselaktion

Beim Datenbankdesign sind Fremdschlüssel von entscheidender Bedeutung für die Aufrechterhaltung der Datenintegrität durch die Herstellung von Beziehungen zwischen Tabellen. Beim Definieren eines Fremdschlüssels geben Sie die referenzielle Aktion an, die regelt, was mit untergeordneten Datensätzen passiert, wenn ein referenzierter übergeordneter Datensatz geändert oder gelöscht wird.

Eine häufige referenzielle Aktion ist ON DELETE CASCADE, die untergeordnete Datensätze automatisch löscht, wenn sie gelöscht werden Der übergeordnete Datensatz wird gelöscht. Um dieses Verhalten in ON DELETE RESTRICT zu ändern und das Löschen von übergeordneten Datensätzen mit zugehörigen untergeordneten Datensätzen zu verhindern, können Sie die folgenden Schritte ausführen:

Schritt 1: Vorhandene Fremdschlüsseleinschränkung löschen

Führen Sie Folgendes aus SQL-Befehl zum Entfernen der vorhandenen Fremdschlüsseleinschränkung:

ALTER TABLE `table_name` DROP FOREIGN KEY `constraint_name`;
Nach dem Login kopieren

wobei Tabellenname die Tabelle ist, die die Fremdschlüsselspalte enthält, und Einschränkungsname ist der Name der Fremdschlüsseleinschränkung.

Schritt 2: Neue Fremdschlüsseleinschränkung mit ON DELETE RESTRICT hinzufügen

Jetzt erstellen Sie eine neue Fremdschlüsseleinschränkung mit dem gewünschten ON DELETE RESTRICT-Verhalten:

ALTER TABLE `table_name` ADD CONSTRAINT `new_constraint_name` FOREIGN KEY (`foreign_key_column`) 
REFERENCES `referenced_table` (`referenced_column`) 
ON DELETE RESTRICT;
Nach dem Login kopieren

wobei Foreign_key_column die Spalte in Tabellenname ist, die auf die referenzierte_Tabelle verweist, und referenzierte_Tabelle die Tabelle ist enthält die referenzierte Spalte, referenced_column ist die Spalte in referenced_table, auf die der Fremdschlüssel verweist, und new_constraint_name ist der Name der neuen Fremdschlüsseleinschränkung.

Beispiel:

Überlegen eine Tabelle UserDetails mit einem Fremdschlüssel User_id, der auf eine andere Tabelle Users verweist. Um die referenzielle Aktion von ON DELETE CASCADE in ON DELETE RESTRICT zu ändern, führen Sie die folgenden Schritte aus:

  1. Bestehende Fremdschlüsseleinschränkung löschen:

    ALTER TABLE `UserDetails` DROP FOREIGN KEY `FK_User_id`;
    Nach dem Login kopieren
  2. Fügen Sie mit ON DELETE eine neue Fremdschlüsseleinschränkung hinzu EINSCHRÄNKEN:

    ALTER TABLE `UserDetails` ADD CONSTRAINT `FK_User_id` 
    FOREIGN KEY (`User_id`) 
    REFERENCES `Users` (`User_id`) 
    ON DELETE RESTRICT;
    Nach dem Login kopieren

Durch Ausführen dieser Schritte können Sie die referenzielle Aktion eines Fremdschlüssels ändern, um sicherzustellen, dass die gewünschten Datenintegritätsregeln in Ihrer Datenbank durchgesetzt werden.

Das obige ist der detaillierte Inhalt vonWie ändere ich die ON DELETE-Aktion eines Fremdschlüssels von CASCADE in RESTRICT?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage