Maison >base de données >tutoriel mysql >Pourquoi est-ce que j'obtiens une erreur « Vérifier la syntaxe proche de la fin sur la ligne 6 » lors de la création d'un déclencheur MySQL à supprimer d'une table après une suppression ?

Pourquoi est-ce que j'obtiens une erreur « Vérifier la syntaxe proche de la fin sur la ligne 6 » lors de la création d'un déclencheur MySQL à supprimer d'une table après une suppression ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-02 16:53:02238parcourir

Why Am I Getting a

Déclencheur MySQL : supprimer de la table APRÈS DELETE - Erreur de syntaxe et résolution

Lors de la tentative de création d'un déclencheur pour supprimer des lignes de 'patron_info ' après la suppression d'une ligne de la table 'patrons', un message d'erreur "Vérifier la syntaxe près de END sur la ligne 6" peut s'afficher. Cette erreur indique une erreur de syntaxe dans le code de déclenchement.

Le code de déclenchement fourni contient actuellement une erreur de syntaxe dans la clause WHERE de l'instruction DELETE :

DELETE FROM patron_info
    WHERE patron_info.pid = patrons.id

Le problème ici est que le le déclencheur fait référence à la table « patrons » en utilisant l'alias « patrons », qui n'est disponible que dans les blocs BEGIN et END du déclencheur. Pour résoudre ce problème, l'instruction DELETE doit plutôt faire référence à l'« ancien » alias, qui représente la ligne supprimée de la table « contributeurs » :

DELETE FROM patron_info
    WHERE patron_info.pid = old.id

Avec cette correction, le code de déclenchement devrait désormais être :

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

De plus, il est important de s'assurer que l'instruction DELETE se termine par un point-virgule (;) pour terminer l'instruction. Lors de la saisie du code de déclenchement dans la console, des délimiteurs doivent également être utilisés pour définir les limites du déclencheur.

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