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 ?
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!