2011-01-11 20 views
0

Ich habe die folgende gespeicherte Prozedur mit phpmyadmin + mysql Version 5.0.77 erstellt, aber nicht wie erwartet funktioniert ..... und zeigt den folgenden Fehler.Mysql-Prozedur wird nicht erstellt/arbeitet mit phpmyadmin

Stored Procedure:

delimiter // 
create procedure myProc() 
begin 
    select name from main_contacts; 
end // 
delimiter; 
Error 

There seems to be an error in your SQL query. 
The MySQL server error output below, 
if there is any, may also help you in diagnosing the problem 

ERROR: 

Unknown Punctuation String @ 11 
STR: // 
SQL: delimiter // 
create procedure myProc() 
begin 
select name from main_contacts 
SQL-query : 

delimiter // create procedure myProc() begin select name from main_contacts 

MySQL said: 


#1064 - You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version 
for the right syntax to use near 'delimiter // 
create procedure myProc() 
begin 
select name from main_contacts' at line 1
+0

Welche mysql-Version verwenden Sie? 'SELECT VERSION()' – zerkms

+0

mysql version 5.0.77 – Jos

Antwort

2

Sie brauchen Raum nach Trennzeichen zu geben. SO ersetzen delimiter; mit delimiter ; oder Sie können versuchen,

delimiter // 
    create procedure myProc() 
    begin 
     select name from main_contacts; 
    end // 
    delimiter ; 
+0

Der Trick besteht darin, die letzte Zeile hinzuzufügen: "delimiter;". Wenn Sie diese Zeile weglassen, erhalten Sie den Fehler "Unbekannte Interpunktionszeichenfolge". Ich hatte dies in PHPMyAdmin v4.2.5. Sie können auch einen anderen Client wie MySQL WorkBench verwenden, der nicht unter diesem Fehler (?) Leidet. – Jan

+0

Gut nach der Verwendung von PHPMyAdmin v4.2.5 kann ich sagen, dass es sehr fehlerhaft ist. Ich habe Fehler wie "Fehler", "Unbekannte Interpunktionszeichenfolge" oder keinen Fehler, aber meine Prozeduren/Funktionen wurden nicht gespeichert. Verwenden Sie einfach MySQL WorkBench. Klappt wunderbar. – Jan

1

Das Problem ist, dass Ihr MySQL-Client nicht das Trennzeichen Befehl mag. Wenn Sie eine ältere Version von phpMyAdmin verwenden, verwenden Sie eine neue Version, da das Problem in phpMyAdmin behoben wurde. Wenn Sie den MySQL-Client mysql verwenden können, sollte das auch Ihr Problem lösen.

Wenn Sie eine ältere Version von phpMyAdmin stecken verwenden, und Sie können nicht oder wollen nicht mysql verwenden, lesen Sie in diesem Rat von Nate Smith auf der N-ten Design-Website ...

http://blog.nth-design.com/2009/02/25/creating-sp-in-phpmyadmin/

Hoffe das hilft.