Erreurs de syntaxe MySQL DELIMITER
Ce MySQL script installe plusieurs déclencheurs.
Il fonctionne sur une machine exécutant MySQL 5.0.51 b-communauté. Sur un autre ordinateur exécutant MySQL 14.12 Distrib 5.0.45, pour redhat-linux-gnu (i386), il échoue avec ce message d'erreur, qui semble être liée à la DELIMITER //... //DELIMITER
; syntaxe :
ERREUR 1064 (42000) à la ligne 272: Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre versions du serveur MySQL pour la bonne syntaxe à utiliser près de 'DÉLIMITEUR; DROP TRIGGER S'il EXISTE trigger_name; DÉLIMITEUR' à la ligne 1
La syntaxe du script (résumé):
DROP TRIGGER IF EXISTS trigger_name;
DELIMITER //
CREATE TRIGGER trigger_name BEFORE UPDATE ON table
FOR EACH ROW BEGIN
-- Trigger logic goes here
END //
DELIMITER;
-- More trigger drop/create statements follow
Quel est le problème avec le script, et comment puis-je la corriger?
source d'informationauteur Sophia
Vous devez vous connecter pour publier un commentaire.
Essayer
pas
Vous êtes réellement en précisant
;
comme un argument de laDELIMITER
de commande, afin de ne pas avoir de l'espace, il peut être source de confusion.Vous avez besoin d'un espace entre 'DÉLIMITEUR' et ';'
Juste comme un add-on, pour quelqu'un d'autre:
Le délimiteur est nécessaire pour permettre à l'ensemble de définition d'être transmises au serveur qu'une seule instruction.
Dans la version de MySql j'utilise la même erreur se produit lors de l'utilisation du séparateur de commande, mais cette version gère le délimiteur ";" pour les déclarations et séparateur "|" pour les procédures stockées et les fonctions, qui, je pense, permet de résoudre le problème, essayez ceci:
DROP TRIGGER IF EXISTS trigger_name;
CREATE TRIGGER trigger_name BEFORE UPDATE ON table
FOR EACH ROW BEGIN
-- Trigger logic goes here
END |
-- other statements or functions here
Hmm, je vais avoir des problèmes similaires. Je fais un dump de Debian Lenny course 5.0.51 et essayer de l'importer à OpenSolaris running 5.0 et obtenir la même erreur. Et j'ai DÉLIMITEUR ;
Conflit de Version?
Essayer de le ci-dessous.
Je suis sûr que ça devrait résoudre le but.
À partir de ci-dessus lorsque nous utilisons un DÉLIMITEUR. Il devrait être dans la forme de