Maison > base de données > tutoriel mysql > Comment supprimer en cascade les données associées dans MySQL à l'aide de JOIN ?

Comment supprimer en cascade les données associées dans MySQL à l'aide de JOIN ?

Patricia Arquette
Libérer: 2025-01-20 16:56:09
original
797 Les gens l'ont consulté

How to Cascade Delete Associated Data in MySQL Using JOIN?

Suppression JOIN dans MySQL : supprimer les données associées

Dans les bases de données relationnelles, il est généralement nécessaire de supprimer les données maître et les données associées. Dans MySQL, vous pouvez utiliser l'instruction JOIN pour implémenter des suppressions en cascade.

Question :

Considérez la structure de tableau suivante :

<code class="language-sql">CREATE TABLE clients (
   client_id INT(11),
   PRIMARY KEY (client_id)
);
CREATE TABLE projects (
   project_id INT(11) UNSIGNED,
   client_id INT(11) UNSIGNED,
   PRIMARY KEY (project_id)
);
CREATE TABLE posts (
   post_id INT(11) UNSIGNED,
   project_id INT(11) UNSIGNED,
   PRIMARY KEY (post_id)
);</code>
Copier après la connexion

Lors de la suppression d'un client, tous les projets et publications associés doivent être supprimés en cascade. Cependant, le code PHP suivant n'est pas valide :

<code class="language-sql">DELETE
FROM posts
INNER JOIN projects ON projects.project_id = posts.project_id
WHERE projects.client_id = :client_id;</code>
Copier après la connexion

Solution :

Pour réussir à supprimer les publications associées à un client supprimé, vous devez spécifier que vous souhaitez supprimer l'entrée du tableau des publications :

<code class="language-sql">DELETE posts
FROM posts
INNER JOIN projects ON projects.project_id = posts.project_id
WHERE projects.client_id = :client_id;</code>
Copier après la connexion

Le code modifié supprimera le projet et ses publications associées lorsqu'un client est supprimé.

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