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

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

Linda Hamilton
Freigeben: 2024-12-04 10:53:14
Original
578 Leute haben es durchsucht

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

Referenzaktion für Fremdschlüssel ändern

Fremdschlüsseleinschränkungen erzwingen die Datenintegrität, indem sie Beziehungen zwischen Tabellen herstellen. Ein häufiges Szenario ist die Verwaltung des Verhaltens beim Löschen eines referenzierten Datensatzes. In diesem Artikel wird erläutert, wie Sie die Referenzaktion ändern, insbesondere von ON DELETE CASCADE zu ON DELETE RESTRICT.

ON DELETE CASCADE vs. ON DELETE RESTRICT

ON DELETE CASCADE: Wenn ein übergeordneter Datensatz gelöscht wird, werden alle entsprechenden untergeordneten Datensätze automatisch gelöscht. Dieses Verhalten kann zu unbeabsichtigtem Datenverlust führen.

ON DELETE RESTRICT: Verhindert das Löschen eines übergeordneten Datensatzes, wenn dieser über untergeordnete Datensätze verfügt. Dadurch wird sichergestellt, dass die Datenintegrität gewahrt bleibt.

SQL-Befehl zum Ändern der referenziellen Aktion

Der folgende SQL-Befehl ändert die referenzielle Aktion für eine Fremdschlüsselspalte:

ALTER TABLE <table_name>
ADD CONSTRAINT <constraint_name>
FOREIGN KEY (<column_name>) REFERENCES <referenced_table_name>
ON DELETE <referential_action>
Nach dem Login kopieren

In Ihrem Fall lautet der Tabellenname „table1“, der Einschränkungsname „fk_table2_id“ und der Spaltenname „fk_table2_id“, der referenzierte_Tabellenname ist „table2“ und die referential_action ist „RESTRICT“.

Beispiel

Angenommen, Sie haben zwei Tabellen, „table1“ und „table2“. ":

CREATE TABLE table1 (
  id INT NOT NULL,
  fk_table2_id INT NOT NULL,
  PRIMARY KEY (id),
  FOREIGN KEY (fk_table2_id) REFERENCES table2(id) ON DELETE CASCADE
);

CREATE TABLE table2 (
  id INT NOT NULL,
  PRIMARY KEY (id)
);
Nach dem Login kopieren

So ändern Sie die Fremdschlüsseleinschränkung in „table1“ auf ON DELETE RESTRICT, führen Sie den folgenden Befehl aus:

ALTER TABLE table1
ADD CONSTRAINT fk_table2_id
FOREIGN KEY (fk_table2_id) REFERENCES table2(id) ON DELETE RESTRICT;
Nach dem Login kopieren

Dadurch wird das Löschen von Datensätzen aus „Tabelle2“ verhindert, wenn in „Tabelle1“ noch untergeordnete Datensätze vorhanden sind, die darauf verweisen.

Das obige ist der detaillierte Inhalt vonWie ändere ich die referenzielle Aktion eines Fremdschlüssels von ON DELETE CASCADE in ON DELETE 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