mysql séparateur d'erreur
Modifiable.
DROP FUNCTION IF EXISTS PersonName;
DELIMITER |;
CREATE FUNCTION PersonName( personID SMALLINT )
RETURNS CHAR(20)
BEGIN
DECLARE pname CHAR(20) DEFAULT '';
SELECT name INTO pname FROM family WHERE ID=personID;
RETURN pname;
END;
|
DELIMITER ;
quoi de mal avec ce code? je reçois d'erreur suivant avec elle.
Il semble y avoir une erreur dans votre requête SQL. Le serveur MySQL erreur
la sortie ci-dessous, si il y a de tout, peut
également vous aider dans le diagnostic de la
problèmeERROR: Unknown Ponctuation Chaîne @
102 STR: |; SQL: ABANDON DE LA FONCTION SI
EXISTE PersonName;# MySQL a retourné un
jeu de résultats vide (c'est à dire des lignes nulles).SÉPARATEUR |; SÉPARATEUR |; SÉPARATEUR |;
SÉPARATEUR |; SÉPARATEUR |; SÉPARATEUR |;
SÉPARATEUR |;Requête SQL:
SÉPARATEUR |;
MySQL a dit: Documentation
#1064 - Vous avez une erreur dans votre syntaxe SQL; consultez le manuel
correspond à votre serveur MySQL
version pour la bonne syntaxe à utiliser
près de " SÉPARATEUR |' à la ligne 1
OriginalL'auteur Basit | 2009-08-12
Vous devez vous connecter pour publier un commentaire.
Je voudrais supprimer le point-virgule après
END
.Re votre commentaire, vous ne pouvez pas utiliser le délimiteur courant lors de la déclaration d'un nouveau délimiteur. Que des sons confus, mais demandez-vous si vous faites cela:
Maintenant MySQL pense que le séparateur est "|;" (deux personnages, une pipe, un point-virgule). Si vous pensez à ce sujet,
DELIMITER
doit être traités de manière spécifique par le client MySQL. C'est la seule déclaration que ne peut pas être suivie par le délimiteur courant.Donc lors de la configuration de la délimiteur à la pipe, ce faire:
Lors de la configuration de revenir à un point-virgule, ce faire:
FWIW, j'ai couru à la suite avec aucune erreur sur mon test de la base de données sur MySQL 5.0.75:
eaither façon sa ne marche pas..:(
j'ai 5.0.67-communauté-nt et il ne faut pas travailler sur elle.. je ne sais pas pourquoi.. j'ai essayé sur le serveur en ligne, ce qui est 5.0.81-communauté, mais il me donne de l'utilisateur accès refusé erreur sur la chute de la table.. la première ligne.
en fait, il a travaillé sur 81, mais pas 67..
merci pour l'aide :).. je vais essayer quelques nouvelles fonctions pour voir le résultat 🙂
OriginalL'auteur Bill Karwin
Essayez ceci:
OK. Essayons de voir quel mikej suggère.
ya je l'ai fait aussi.
vérifiez le post, je l'ai modifié avec une nouvelle requête et de nouvelles erreurs.
OriginalL'auteur Babak
Essayer si vous êtes à l'aide de phpMyAdmin:
http://dotnetfish.blogspot.com/2009/07/1064-you-have-error-in-your-sql-syntax.html
OriginalL'auteur chh
Dans votre dernière ligne où vous êtes la restauration séparateur point-virgule pour vous avez besoin d'un espace entre
DELIMITER
et;
c'est à direOriginalL'auteur mikej
Meilleure solution est, je l'ai essayé après l'obtention de l'erreur ci-dessus. Le code doit être comme
OriginalL'auteur gnr
J'étais ont des problèmes avec le délimiteur. J'ai été en utilisant Navicat, puis j'ai roulé sur MySql workbench et le problème est résolu. Workbench insère le délimiteur dans le code...
OriginalL'auteur Chad
Vous devez ajouter
delimiter $$
au début et à la dernière de mysql script que vous devrait à la fin par ledelimiter
OriginalL'auteur user2586714
Je vais jeter ce dans le mélange, car il peut aider d'autres personnes avec ce problème.
Si vous êtes à l'aide de phpMyAdmin, au-dessous de l'entrée SQL boîte, il y a un délimiteur de champ où vous pouvez taper le délimiteur à utiliser pour la requête. Vous pouvez mettre de l'extérieur délimiteur ici si vous voulez, puis vous n'avez pas besoin de le délimiteur directives.
Par exemple, si vous mettez le délimiteur $$ à l'intérieur de la boîte, vous pourriez utiliser le format suivant votre requête.
Certaines personnes peuvent trouver cela plus facile.
OriginalL'auteur techdude