phpMyAdmin
 sql >> Baza danych >  >> Database Tools >> phpMyAdmin

Trudność w pisaniu procedury składowanej w MYSQL

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.




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. MySql phpMyAdmin:Automatyczna replikacja/synchronizacja dwóch baz danych

  2. Dlaczego otrzymuję wartości NULL w Left Join?

  3. Ciąg znaków nie został rozpoznany jako prawidłowy DateTime phpMyAdmin

  4. Jak można poprawnie wykonać kodowanie znaków zarówno w bazie danych php, jak i mysql?

  5. MySQL UPDATE z SUBQUERY tej samej tabeli