Maison > base de données > tutoriel mysql > Comment modifier l'action référentielle d'une clé étrangère de ON DELETE CASCADE à ON DELETE RESTRICT ?

Comment modifier l'action référentielle d'une clé étrangère de ON DELETE CASCADE à ON DELETE RESTRICT ?

Linda Hamilton
Libérer: 2024-12-04 10:53:14
original
576 Les gens l'ont consulté

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

Modification de l'action référentielle de clé étrangère

Les contraintes de clé étrangère renforcent l'intégrité des données en établissant des relations entre les tables. Un scénario courant consiste à gérer le comportement lorsqu’un enregistrement référencé est supprimé. Cet article explique comment modifier l'action référentielle, en particulier de ON DELETE CASCADE à ON DELETE RESTRICT.

ON DELETE CASCADE vs. ON DELETE RESTRICT

ON DELETE CASCADE : Lorsqu'un enregistrement parent est supprimé, tous les enregistrements enfants correspondants sont automatiquement supprimés. Ce comportement peut entraîner une perte de données involontaire.

ON DELETE RESTRICT : empêche la suppression d'un enregistrement parent s'il contient des enregistrements enfants. Cela garantit que l'intégrité des données est maintenue.

Commande SQL pour modifier l'action référentielle

La commande SQL suivante modifie l'action référentielle pour une colonne de clé étrangère :

ALTER TABLE <table_name>
ADD CONSTRAINT <constraint_name>
FOREIGN KEY (<column_name>) REFERENCES <referenced_table_name>
ON DELETE <referential_action>
Copier après la connexion

Dans votre cas, le nom_table est "table1", le nom_contrainte est "fk_table2_id", le nom_colonne est "fk_table2_id", le nom_table_référencé est "table2" et l'action_référentielle est "RESTRICT".

Exemple

Supposons que vous ayez deux tables, "table1" et "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)
);
Copier après la connexion

Pour changer la contrainte de clé étrangère dans "table1" en ON DELETE RESTRICT, exécutez la commande suivante :

ALTER TABLE table1
ADD CONSTRAINT fk_table2_id
FOREIGN KEY (fk_table2_id) REFERENCES table2(id) ON DELETE RESTRICT;
Copier après la connexion

Cela empêchera la suppression de tout enregistrement de "table2" s'il existe encore des enregistrements enfants le référençant dans "table1".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal