Mysql
 sql >> база данни >  >> RDS >> Mysql

грешка в разделителя на mysql

Бих премахнал точката и запетаята след END .

    ...
END
|
DELIMITER ;

Относно вашия коментар, не можете да използвате текущия разделител, когато декларирате нов разделител. Това звучи объркващо, но помислете дали да направите това:

DELIMITER |;

Сега MySQL смята, че разделителят е "|;" (два знака, цилиндър и точка и запетая). Ако се замислите, DELIMITER трябва да бъдат третирани по специален начин от MySQL клиента. Това е единственото твърдение, което не може бъде последвано от текущия разделител.

Така че, когато задавате разделителя на тръба, направете това:

DELIMITER |

Когато го връщате на точка и запетая, направете това:

DELIMITER ;

FWIW, стартирах следното без грешка в моята локална тестова база данни на MySQL 5.0.75:

DROP FUNCTION IF EXISTS PersonName;
DELIMITER |

CREATE FUNCTION PersonName( personID SMALLINT )
RETURNS CHAR(20)
BEGIN
  DECLARE pname CHAR(20) DEFAULT '';
  SELECT name INTO pname FROM family WHERE ID=personID;
  RETURN pname;
END
|
DELIMITER ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да:Класиране на резултатите от търсенето

  2. Актуализирайте няколко реда в една MySQL заявка

  3. MySQL - сумарни стойности на колони въз основа на ред от същата таблица

  4. Предотвратяване на SQL инжекция в страницата за вход в PHP

  5. mysql множество заявки в едно изявление