MySQL MariaDB

MySQL SUPPRIMER CASCADE

MySQL SUPPRIMER CASCADE
Sur MySQL, l'instruction ON DELETE CASCADE est utilisée pour retirer implicitement les lignes correspondantes de la table enfant chaque fois que des lignes sont supprimées de la table parent. Il s'agit d'un type relatif de comportement contextuel lié à la clé étrangère.

En supposant que vous ayez produit deux tables avec une FOREIGN KEY à l'intérieur d'une relation de clé étrangère, rendant une table parent et enfant. Après cela, une clé destinée à une FOREIGN KEY doit être corrigée pour qu'une autre réussisse tout au long des activités en cascade, puis nous spécifions une instruction ON DELETE CASCADE. Peut-être que si une seule instruction FOREIGN KEY détermine ON DELETE CASCADE, les fonctions en cascade déclencheront une exception.

Voyons comment tout au long de la table MySQL, nous pourrions utiliser l'instruction ON DELETE CASCADE.

Vous devez ouvrir la ligne de commande MySQL récemment installée Client Shell pour continuer le travail. À l'ouverture, il vous sera demandé d'entrer votre mot de passe pour continuer à utiliser le shell client en 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 en cascade à l'aide d'une clé étrangère. Une "commande" est la table parent à ce stade, et la table enfant est le "client". Avec les scripts d'accompagnement, ainsi que les 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 dans. Ici, « données » est la base de données que nous utilisons.

>> utiliser les données ;

Créer une table parent :

Tout d'abord, vous devez créer la table « ordre » 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.commande ( ID INT PRIMARY KEY AUTO_INCREMENT NOT NULL, Article VARCHAR(50) NOT NULL, Price VARCHAR(50) NOT NULL);

Ajoutons quelques 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 à la table.

Vérifions maintenant la table « ordre » après y avoir mis des valeurs. Vous pouvez utiliser la commande SELECT à cette fin comme suit :

>> SÉLECTIONNER * À PARTIR des données.ordre;

Vous pouvez voir que les données ont été enregistrées avec succès dans la table « ordre » comme prévu.

Créer une table enfant avec DELETE Cascade :

Maintenant, c'est au tour de créer une autre table appelée "client".

Tout d'abord, vous devez taper le mot-clé "CREATE" avec le nom de la table. Ensuite, vous devez ajouter des noms de champs ou de colonnes avec leurs types de données. Vous devez nommer la dernière colonne, qui sera utilisée comme clé étrangère dans cette table, de la même manière que vous l'avez nommée dans la table précédente. Comme vous le savez, la colonne "ID" de la table "order" a été utilisée comme clé étrangère dans la table "customer" en tant que "OrderID". Après cela, il faut ajouter le mot-clé "CONSTRAINT", qui sert à initialiser la FOREIGN Key, ainsi que la référence de la table précédente. Vous devez maintenant utiliser l'instruction "DELETE CASCADE" avec le mot-clé "ON".

>> CRÉER des données TABLE.customer(CustID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,Name VARCHAR(45) NOT NULL,OrderID INT NOT NULL,CONSTRAINT order_id_fk FOREIGN KEY(OrderID) REFERENCES data.commande (ID) SUR SUPPRIMER CASCADE);

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

Par la suite, faire l'insertion de requêtes. C'est un point pour vérifier la table si les données ont été ajoutées avec succès ou non. Essayez donc cette commande ci-dessous pour le faire :

>> SÉLECTIONNER * À PARTIR des données.client;

Ici, vous pouvez avoir un aperçu de la sortie de la table que les données lui sont efficacement affectées et sans aucune erreur ou faute.

Supprimer les enregistrements :

Désormais, lorsque vous supprimez des données ou une ligne de la table parent, les données ou la ligne de la table enfant seront également supprimées en raison de l'activation de DELETE CASCADE sur la clé étrangère mentionnée dans la table enfant. Essayons d'abord la requête DELETE, puis vérifions les résultats. Nous supprimerons les données du tableau « ordre » où « ID » est « 11 ». Si le même « ID » se trouve dans la table « client » dans la colonne de clé étrangère, « ID de commande », alors la ligne ou les données relatives dans la table « client » seront également supprimées. Essayez la commande ci-dessous dans la ligne de commande pour le faire :

>> SUPPRIMER DES données. commande WHERE ID = '11';

Tout d'abord, vérifions la table parent. Ensuite, tapez la commande SELECT qui se trouve ci-dessous pour récupérer les enregistrements restants de la table « ordre » 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 cette table. Cela signifie que les enregistrements relatifs de la même valeur d'ID, « 11 », seraient également supprimés de la table enfant.

>> SÉLECTIONNER * À PARTIR des données.ordre;

La récupération des enregistrements de la table enfant à l'aide de la commande SELECT est aussi simple qu'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é. C'est parce que la colonne "OrderID" a une valeur de "11" dans sa première ligne, ce qui conduit à la suppression de cette ligne.

>> SÉLECTIONNER * À PARTIR des données.client;

Lorsque vous essayez de supprimer la table parent à l'aide de la commande DROP, MySQL vous empêchera de le faire. C'est parce que la table parente a activé le DELETE CASCADE dessus. Donc, pour supprimer la table, vous devez d'abord en retirer le DELETE CASCADE.

Conclusion:

Nous avons terminé avec l'explication de DELETE CASCADE dans MySQL. Pour que ce soit plus clair, essayez d'autres exemples de votre côté.

Comment booster les FPS sous Linux?
FPS signifie Images par seconde. La tâche du FPS est de mesurer la fréquence d'images dans les lectures vidéo ou les performances de jeu. En termes si...
Meilleurs jeux de laboratoire d'applications Oculus
Si vous êtes propriétaire d'un casque Oculus, vous devez être au courant du chargement latéral. Le chargement latéral est le processus d'installation ...
Top 10 des jeux à jouer sur Ubuntu
La plate-forme Windows a été l'une des plates-formes dominantes pour les jeux en raison du pourcentage énorme de jeux qui se développent aujourd'hui p...