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
ogranicznikapolecenie.Nie wszystkie wersje phpMyAdmin rozpoznają
ogranicznikKomenda; zamiast tego można użyćDelimiterpole 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
delimiteraponieważ 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 ... ENDzłożony blok instrukcji i uniknąć konieczności zmiany ogranicznika.