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
Libérer: 2024-11-02 16:53:02
original
237 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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!

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