Maison >base de données >tutoriel mysql >Comment supprimer correctement les données d'une table après avoir supprimé d'une autre à l'aide des déclencheurs MySQL ?

Comment supprimer correctement les données d'une table après avoir supprimé d'une autre à l'aide des déclencheurs MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-03 16:25:03489parcourir

How to Correctly Delete Data from One Table After Deleting from Another Using MySQL Triggers?

Déclencheurs MySQL : suppression d'une table après suppression d'une autre

Problème :

Vous souhaitez créer un déclencheur qui supprime automatiquement les lignes du tableau 2 (patron_info) chaque fois qu'une ligne est supprimée du tableau 1 (usagers). Cependant, vous rencontrez une erreur de syntaxe lors de la création du déclencheur.

Solution :

L'erreur est probablement causée par une syntaxe incorrecte dans l'instruction DELETE du déclencheur. . Plus précisément, vous devez utiliser old.id au lieu de patrons.id pour faire référence à l'ID de la ligne supprimée, selon le déclencheur suivant :

<code class="sql">CREATE TRIGGER log_patron_delete AFTER DELETE ON patrons
FOR EACH ROW
BEGIN
  DELETE FROM patron_info
  WHERE patron_info.pid = old.id;
END</code>

Assurez-vous d'inclure le ; à la fin de l'instruction DELETE et vérifiez également la syntaxe appropriée sur d'autres parties du déclencheur.

De plus, n'oubliez pas d'utiliser des délimiteurs lors de la saisie du code du déclencheur dans une fenêtre de console. Par exemple, vous pouvez utiliser $ comme délimiteur, comme ceci :

<code class="sql">DELIMITER $

CREATE TRIGGER log_patron_delete AFTER DELETE ON patrons
FOR EACH ROW
BEGIN
  DELETE FROM patron_info
  WHERE patron_info.pid = old.id;
END$

DELIMITER ;

$</code>

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!

Déclaration:
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