phpMyAdmin
 sql >> база данни >  >> Database Tools >> phpMyAdmin

Трудност при писането на Съхранена процедура в MYSQL

Както е документирано в Дефиниране на съхранени програми :

  • Ако използвате mysql клиентска програма за дефиниране на съхранена програма, съдържаща знаци за точка и запетая, възниква проблем. По подразбиране mysql самият той разпознава точката и запетаята като разделител на израза, така че трябва временно да предефинирате разделителя, за да предизвика mysql за да предадете цялата съхранена дефиниция на програмата на сървъра.

    Същото важи и за phpMyAdmin.

  • За да предефинирате mysql разделител, използвайте разделителя команда.

    Не всички версии на phpMyAdmin разпознават разделителя команда; вместо това може да се използва разделител поле за въвеждане под полето за въвеждане на SQL:вижте Как да напиша SP в phpMyAdmin (MySQL)?

  • Следва пример за функция, която приема параметър, изпълнява операция с помощта на SQL функция и връща резултата. В този случай не е необходимо да използвате разделител тъй като дефиницията на функцията не съдържа вътрешен ; разделители на изрази:

    mysql> CREATE FUNCTION hello (s CHAR(20))
    mysql> RETURNS CHAR(50) DETERMINISTIC
        -> RETURN CONCAT('Hello, ',s,'!');
    Query OK, 0 rows affected (0.00 sec)
    

    Във вашия случай можете да премахнете BEGIN ... END съставен блок на изрази и избягвайте необходимостта от промяна на разделителя.




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Google Cloud PHP моят администратор не се свързва с ssh

  2. как да добавите уникален композит към колона в таблицата mysql

  3. СЛЕД рестартиране на MySql:#1452 - Не може да се добави или актуализира дъщерен ред:ограничение на външния ключ е неуспешно

  4. Създаване на списък със съобщения в SQL

  5. Създаване на JSON таблица от SQL заявка