HeidiSQL CREATE FUNCTION errors

No matter how simple you define your function, its creation will fail when using HeidiSQL interface.

CREATE FUNCTION `fn_my_function`(
    `parameter_a` INT
)
RETURNS INT
LANGUAGE SQL
DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
   return 0; 
END

HeidiSQL Create Function Error

After reviewing your code, you can’t find any syntax error. You try to fix it by removing the COMMENT ” line, but nothing seems to work.

The solution is quite simple:

  • Tell the SQL engine a new DELIMITER:
    • DELIMITER //
  • After the END; line, add another one to restore the DELIMITER to ;
    • DELIMITER ;
  • That’s all
DELIMITER //

CREATE FUNCTION `fn_my_function`(
    `parameter_a` INT
)
RETURNS INT
LANGUAGE SQL
DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
   return 0; 
END

DELIMITER ;

Please note that there is a space separator between DELIMITER and ;