Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] stored procedure via phpMyAdmin

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] stored procedure via phpMyAdmin

    Hi

    Also, habe schon die PHPMyAdmin Homepage nach Hinweisen durchsucht und auch hier schon die Suche bemüht.

    Also, ich versuche mich ins Thema MySQL und Stored Procedures einzuarbeiten und wollte mal eben 'ne ansich simple Sache testen.

    Im SQL-Fenster von PHPMyAdmin V. 2.11.7 folgender Code

    Code:
    DROP PROCEDURE IF EXISTS testen;
    CREATE PROCEDURE testen(IN z1 CHAR(10), IN z2 CHAR(10))
    BEGIN
    INSERT INTO test_varchar (no,zahl1,zahl2) VALUES (NULL,z1,z2);
    END //
    Unten im Delimiter (Begrenzer) Feld gebe ich dann noch // an.

    Die Fehlermeldung lautet:

    #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 ';
    CREATE PROCEDURE testen(IN z1 CHAR(10), IN z2 CHAR(10))
    BEGIN
    INSERT INTO t' at line 1
    Das SQL-Insert-Statement habe ich separat getestet. Das funktioniert.

    Sieht jemand, was ich falsch mache.

  • #2
    Ich glaube das ; ist das Problem. Meine mich zu erinnern, dass das bei FUNCTIONS auch nicht ging.

    Kommentar


    • #3
      Bah, damit hatte ich auch immer Probleme. Ich habe dann aus allen möglichen und unmöglichen Quellen gelesen, ich sollte per
      Code:
      DELIMITER //
      den Delimiter ändern, aber das hat alles noch schlimmer gemacht. Schließlich habe ich einfach alle Vorsicht über Bord geworfen und es ganz normal mit gemacht ; und ohne den //-Krams gemacht und siehe: es ging.
      Habs jetzt aber nicht ausprobiert und lange keine Stored Routines verwendet.

      Unten im Delimiter (Begrenzer) Feld gebe ich dann noch // an.
      Dann darfst du erst recht kein ; im ersten Statement nutzen. Versuche einfach überall mal ; (auch nach dem END) und wenn das nicht geht, dann den alten Horror mit der DELIMITER-Anweisung.

      Kommentar


      • #4
        Danke für die Antwort.

        War zwar nicht der entscheidende Hinweis, hat mich aber irgendwie animiert, nochmal richtig logisch zu denken. Boa.

        Und siehe da, so geht's:
        Code:
        DROP PROCEDURE IF EXISTS testen;
        Delimiter //
        CREATE PROCEDURE testen(IN z1 CHAR(10), IN z2 CHAR(10))
        BEGIN
        INSERT INTO test_varchar (no,zahl1,zahl2) VALUES (NULL,z1,z2);
        END //
        Jetzt mit ; als Begrenzer.

        Kommentar

        Lädt...
        X