MySQL ma dwa różne typy zmiennych:
-
zmienne lokalne (które nie są) poprzedzone
@
) są silnie wpisane i ograniczone do bloku programu przechowywanego, w którym są zadeklarowane. Zauważ, że zgodnie z dokumentacją wDECLARE
Składnia : -
zmienne użytkownika (które są poprzedzone
@
) są luźno wpisane i ograniczone do sesji. Pamiętaj, że nie trzeba ich ani nie można zadeklarować — po prostu użyj ich bezpośrednio.
Dlatego, jeśli definiujesz program przechowywany i rzeczywiście chcesz „zmienną lokalną”, zgodnie ze sformułowaniem w twoim pytaniu, będziesz musiał usunąć @
znak i upewnij się, że Twój DECLARE
instrukcja znajduje się na początku bloku programu. W przeciwnym razie, aby użyć „zmiennej użytkownika”, upuść DECLARE
oświadczenie.
Co więcej, będziesz musiał umieścić zapytanie w nawiasach, aby wykonać je jako podzapytanie:
SET @countTotal = (SELECT COUNT(*) FROM nGrams);
Albo możesz użyć SELECT ... INTO
:
SELECT COUNT(*) INTO @countTotal FROM nGrams;