Zgodnie z dokumentacją w sekcji Definiowanie programów przechowywanych :
Jeśli używasz mysql program klienta do zdefiniowania zapisanego programu zawierającego znaki średnika, pojawia się problem. Domyślnie mysql sam rozpoznaje średnik jako ogranicznik instrukcji, więc musisz tymczasowo przedefiniować ogranicznik, aby spowodować mysql aby przekazać całą definicję zapisanego programu na serwer.
To samo dotyczy phpMyAdmin.
Aby przedefiniować mysql ogranicznik, użyj
ogranicznika
polecenie.Nie wszystkie wersje phpMyAdmin rozpoznają
ogranicznik
Komenda; zamiast tego można użyćDelimiter
pole wprowadzania pod polem wprowadzania SQL:zobacz Jak napisać SP w phpMyAdmin (MySQL)?Poniżej znajduje się przykład funkcji, która pobiera parametr, wykonuje operację przy użyciu funkcji SQL i zwraca wynik. W takim przypadku nie jest konieczne użycie
delimitera
ponieważ definicja funkcji nie zawiera wewnętrznego;
ograniczniki instrukcji:mysql>
CREATE FUNCTION hello (s CHAR(20))
mysql>RETURNS CHAR(50) DETERMINISTIC
->RETURN CONCAT('Hello, ',s,'!');
Query OK, 0 rows affected (0.00 sec)W Twoim przypadku możesz usunąć
BEGIN ... END
złożony blok instrukcji i uniknąć konieczności zmiany ogranicznika.