Mysql supprimer la cascade

Mysql supprimer la cascade
Sur MySQL, l'instruction sur Delete Cascade est utilisée pour éliminer implicitement les lignes correspondantes de la table d'enfants chaque fois que les lignes sont supprimées de la table parentale. Il s'agit d'un type relatif de comportement contextuel lié à la clé étrangère.

En supposant que vous avez produit deux tables avec une clé étrangère dans une relation de clé étrangère, ce qui rend un parent et une table d'enfants. Après cela, une clé pour une clé étrangère doit être fixée pour qu'un autre réussit tout au long des activités en cascade, puis nous spécifions une déclaration de cascade de suppression. Peut-être que si une seule déclaration de clé étrangère détermine la cascade de suppression ON, les fonctions en cascade déclencheront une exception.

Laissez-nous comprendre comment tout au long de la table MySQL, nous pourrions utiliser la déclaration de cascade ON Delete.

Vous devez ouvrir le shell client de ligne de commande MySQL récemment installé pour poursuivre le travail. Lors de l'ouverture, il vous sera demandé de saisir votre mot de passe pour continuer à utiliser le shell client de la ligne de commande MySQL, comme annexé ci-dessous.

Ensuite, nous allons construire deux tables appelées «commande» et «client». Les deux tables mutuelles sont connectées à la fonction de suppression de cascade en utilisant une clé étrangère. Une «commande» est le tableau parent à ce stade, et la table des enfants est le «client». Avec les scripts d'accompagnement, ensemble avec des enregistrements respectifs, vous devez construire les deux tables. Utilisez la commande «Utiliser» ci-dessous pour sélectionner la base de données dans laquelle vous souhaitez travailler ou créer des tables à l'intérieur. Ici, les données "sont la base de données que nous utilisons.

>> utiliser des données;

Créer une table parent:

Tout d'abord, vous devez créer la table «Order» avec ses champs à l'aide de la commande Create Table, comme indiqué dans la requête ci-dessous. La colonne «ID» sera utilisée dans la prochaine table «Client» comme clé étrangère.

>> Créer des données de table.Ordre (id int primal clé auto_increment non nul, élément varchar (50) pas nul, prix varchar (50) pas null);

Ajoutons des données à ce tableau. Vous devez exécuter les requêtes ci-dessous dans le shell de ligne de commande MySQL et exécuter chaque commande individuellement dans la ligne de commande ou simplement ajouter toutes les commandes de la ligne de commande en une seule étape. Vous pouvez également utiliser l'interface graphique MySQL Workbench pour ajouter des données au tableau.

Vérifions maintenant le tableau «commande» après avoir mis des valeurs dedans. Vous pouvez utiliser la commande SELECT à cet effet comme suit:

>> Sélectionner * à partir des données.commande;

Vous pouvez voir que les données ont été enregistrées avec succès dans le tableau «Ordre» comme prévu.

Créer une table d'enfants avec delete Cascade:

Maintenant, c'est le tour d'un autre tableau appelé «client» à créer.

Tout d'abord, vous devez taper le mot-clé «Créer» avec le nom de la table. Ensuite, vous devez ajouter des noms de champ ou de colonne avec leurs types de données. Vous devez nommer la dernière colonne, qui sera utilisée comme clé étrangère de ce tableau, la même que vous l'avez nommée dans le tableau précédent. Comme vous le savez, la colonne «ID» du tableau «Commande» a été utilisée comme clé étrangère du tableau «Client» comme «OrderId». Après cela, vous devez ajouter le mot-clé «contrainte», qui est utilisé pour initialiser la clé étrangère, ainsi que la référence du tableau précédent. Vous devez maintenant utiliser la déclaration «Supprimer Cascade» avec le mot-clé «ON».

>> Créer des données de table.Client (Custid int not null Auto_increment Clé primaire, nom varchar (45) pas null, ordonnance int not null, contrainte Order_ID_FK Key Foreign (OrderID) références données.Ordre (id) sur Delete Cascade);

Une fois le tableau créé et que la cascade de suppression a été exercée avec succès sur ce tableau, il est temps d'insérer certaines valeurs dans ce tableau. Essayez les instructions ci-dessous une par une dans le shell client de ligne de commande MySQL pour le faire.

Par la suite, faites l'insertion de requêtes. C'est un point de vérifier le tableau si les données ont été ajoutées avec succès ou non. Alors essayez ce command inférieur pour faire ceci:

>> Sélectionner * à partir des données.client;

Ici, vous pouvez avoir un aperçu de la sortie du tableau que les données lui sont affectées efficacement et sans aucune erreur ni défaut.

Supprimer les enregistrements:

Maintenant, lorsque vous supprimez toutes les données ou lignes de la table parent, elle supprimera également les données ou la ligne de la table enfant en raison de la cascade de suppression activée sur la clé étrangère mentionnée dans le tableau enfant. Essayons d'abord la requête de suppression, puis vérifions les résultats. Nous supprimerons les données du tableau «Ordre» où «l'ID» est «11». Si le même «ID» se trouve dans le tableau «Client» dans la colonne de clé étrangère, «OrderId», alors la ligne ou les données relatives du tableau «Client» sera également supprimée. Essayez la commande ci-dessous dans la ligne de commande pour le faire:

>> Supprimer des données. commander où id = '11';

Tout d'abord, vérifions la table parentale. Ensuite, saisissez la commande SELECT trouvée ci-dessous pour récupérer les enregistrements restants du tableau «Order» »après la suppression de certains enregistrements. Vous verrez que l'enregistrement de la table, où «l'ID» était «11», a été supprimé avec succès de ce tableau. Cela signifie que les enregistrements relatifs de la même valeur d'identification, «11», seraient également supprimés de la table des enfants.

>> Sélectionner * à partir des données.commande;

Rechercher les enregistrements de la table enfant à l'aide de la commande SELECT est aussi simple que vous l'avez fait avant. Essayez simplement la commande ci-dessous, et vous aurez les résultats.

En obtenant les résultats, vous pouvez voir que l'enregistrement de «Custid» ayant une valeur de «1» qui a été complètement supprimé. En effet.

>> Sélectionner * à partir des données.client;

Lorsque vous essayez de laisser tomber la table parent à l'aide de la commande Drop, MySQL vous empêchera de le faire. En effet. Donc, pour déposer la table, vous devez d'abord en retirer la cascade de suppression.

Conclusion:

Nous avons fait avec l'explication de Supprimer Cascade dans MySQL. Pour le rendre plus clair, essayez plus d'exemples à votre fin.