Page 1 of 1

Stored Procedure - Delimiter-Befehl wird nicht erkannt

PostPosted: 05. December 2006 20:42
by trady
Hallo,

Ich benutze XAMPP 1.5.5 und wollte über phpMyAdmin eine Stored Procedure anlegen.

Leider erhalte ich immer die Fehlermeldung:
#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 p1 () select * from t' at line 1


Der betreffende Code lautet folgendermaßen (entnommen aus dem MySQL 5.0 Stored Procedures White Paper; S.7) :
use test1;
delimiter @
create procedure p1 () select * from t; @

Hat jemand eine Idee, wie ich den Fehler beheben könnte ?

PostPosted: 07. December 2006 11:02
by sari42
google hilft,
IIRC arbeitet der delimiter befehl nur auf der console,
ich kann mich aber irren ;)
phpmyadmin hat im sql fenster (unten links) ein inputfeld dafür.

PostPosted: 10. December 2006 17:52
by trady
Hi sari,

Vielen Dank für den Tip mit dem sql-Fenster bei phpMyAdmin. Das Anlegen einer Stored Procedure funktioniert jetzt.

Leider erfüllt dieser Tip nicht alle meine Wünsche. Mein Ziel ist es, das SQL-Script unter Windows 98 in einem Rutsch anzulegen. Es muß auch nicht unbedingt phpMyAdmin sein, wenn es vielleicht anders besser funktionieren würde. Hat noch jemand eine Idee?

Kann man eigentlich den Entwicklern von phpMyAdmin Verbesserungsvorschläge senden ? Wenn ja, würde ich das gerne machen und den Vorschlag bringen, phpMyAdmin um den Delimiter-Befehl zu erweitern, so daß über die Funktion "Importieren" ein komplettes Script eingelesen werden kann. Weiß evtl. einer, an wen ich mich wenden müßte?

PostPosted: 10. December 2006 18:45
by deepsurfer
Entwickler erreicht man unter http://www.phpmyadmin.net/

------

Auf die frage hin wie man auch noch anders komplette DBs importieren kann
gibt es die möglichkeit das alles über Konsolen Befehle des MySQL durch zu führen (nicht anderes macht der phpmyadmin auch).

Folglich kannst du dir recht einfach ein kleines Script schreiben das ein DUMP mittels MySQL befehlen direkt auf de MySQL-Server importiert.

PostPosted: 11. December 2006 23:05
by sari42
wenn man mal so rumgoogelt, findet man, daß "DELIMITER" momentan wohl nur auf shellebene richtig läuft.

also
shell>mysql -root < scriptMitStoredProcs.sql
tut's