2012-10-18 11 views
12

Jestem całkiem nowy dla mysql, ale mam doświadczenie MS SQL.mysql DECLARE GDY poza przechowywaną procedurą, jak?

Czy możliwe jest deklarować zmienne i używać podczas oświadczenie poza procedurę przechowywane?

ja tylko znaleźć przykłady, gdzie robicie jak ten

1. procedure created 
2. execute proc 
3. drop proc 

zaproponować mi właściwą drogę

Odpowiedz

10

Nie, nie mogę tego zrobić. Możesz używać tych instrukcji tylko w klauzuli BEGIN ... END.

Tak, jest to możliwe w procedurach/funkcjach, wyzwalaczach i zdarzeniach.

Więcej informacji tutaj - MySQL Compound-Statement Syntax.

+0

To jest ... o wiele trudniejsze do rozwiązania, jeśli próbujesz przenieść aplikację MS SQL do mysql (na przykład). Co ciekawe, jakie jest właściwe podejście podczas pisania skryptu migracji i musisz ustawić zmienną na wynik zapytania, a następnie zrobić coś warunkowo (np. Jeśli mam wartość "foo", wstaw wartość "bar" i wstawić wartość "spodnie") w innej tabeli? – bounav

+0

Aby odpowiedzieć na mój komentarz, możesz napisać 'INSERT INTO Table1 (ColA, ColB) SELECT ColC, ColD FROM Table2 WHERE ColE = 'foo';' następnie łańcuch tych kwerend. – bounav

Powiązane problemy