2010-02-28 12 views
5

Jestem w rozterce, nie widzę powód coś tak prostego jak to nie zadziała:Tworzenie Procedura

CREATE PROCEDURE test() 
BEGIN 
    DECLARE var INT; 
    SET var = 0; 
END 

jestem dosłownie testowanie tego powodu nie wydaje tworzyć cokolwiek. Komunikat o błędzie, który otrzymuję, to:

[BŁĄD w zapytaniu 1] Wystąpił błąd w składni SQL; sprawdź instrukcję, która odpowiada twojej wersji serwera MySQL dla prawidłowej składni do użycia w pobliżu '' w linii 3

Linia 3 to instrukcja DECLARE. Jakieś pomysły?

Odpowiedz

11

Jest to typowy problem z ogranicznikiem podczas tworzenia procedur przechowywanych na dowolnej platformie SQL. Domyślnym ogranicznikiem jest ;, więc gdy MySQL zobaczy pierwszy ; na linii 3, analizuje jako Koniec instrukcji. Musisz zmienić DELIMITER na coś innego i oznaczyć koniec procedury przechowywanej nowym DELIMITEREM.

-- Change DELIMITER TO // instead of ; 
DELIMITER // 

CREATE PROCEDURE test() 
BEGIN 
    DECLARE var INT; 
    SET var = 0; 
END 
// 
-- Mark the stored procedure as one statement 

DELIMITER ; 
-- Change delimiter back to ; 
+0

Jak rzadko. Dziękuję bardzo! – Kezzer