Maison > base de données > tutoriel mysql > Comment puis-je modifier les contraintes SQL existantes, telles que l'ajout de ON DELETE CASCADE ?

Comment puis-je modifier les contraintes SQL existantes, telles que l'ajout de ON DELETE CASCADE ?

Barbara Streisand
Libérer: 2024-12-17 10:49:26
original
840 Les gens l'ont consulté

How Can I Modify Existing SQL Constraints, Such as Adding ON DELETE CASCADE?

Modification des contraintes

Vous pouvez rencontrer des cas où vous devez mettre à jour les contraintes existantes dans votre base de données SQL. Un de ces scénarios consiste à ajouter la clause ON DELETE CASCADE à une contrainte de clé étrangère existante. Cette clause garantit que lorsqu'une ligne est supprimée de la table parent, les lignes correspondantes de la table enfant sont également automatiquement supprimées.

Modification des contraintes

Contrairement à la notion que les contraintes ne peuvent pas être modifiées, vous pouvez en effet les modifier en supprimant la contrainte existante et en la recréant avec les modifications souhaitées. Pour illustrer ce processus, considérons la contrainte ACTIVEPROG_FKEY1 sur la table ACTIVEPROG :

CONSTRAINT ACTIVEPROG_FKEY1 FOREIGN KEY(ActiveProgCode) REFERENCES PROGRAM(ActiveProgCode),
Copier après la connexion

Pour ajouter la clause ON DELETE CASCADE à cette contrainte, suivez ces étapes :

  1. Supprimez l'existant Contrainte :

    ALTER TABLE ACTIVEPROG DROP CONSTRAINT ACTIVEPROG_FKEY1;
    Copier après la connexion
  2. Recréer la contrainte avec la modification souhaitée :

    ALTER TABLE ACTIVEPROG
    ADD CONSTRAINT ACTIVEPROG_FKEY1 FOREIGN KEY(ActiveProgCode) REFERENCES PROGRAM(ActiveProgCode)
    ON DELETE CASCADE;
    Copier après la connexion

Par en suivant ces étapes, vous avez réussi à modifier la contrainte pour inclure la clause ON DELETE CASCADE, garantissant ainsi que lorsque les enregistrements sont supprimés du table PROGRAM, les enregistrements correspondants dans la table ACTIVEPROG sont automatiquement supprimés.

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