Generación de funciones en MySQL

La función se crea igual en desarrollo y producción salvo por un peqeño detalle.

El usuario que usamos como definidor (CREATE DEFINER) debe de ser el que tiene permisos en esa BBDD. Es decir, en el caso de desarrollo es root@servidor_MySQL y en producción será nombre_usuario@servidor_MySQL.

Por otro lado necesitamos que el separador (en la pantalla de ejecución de SQL) sea en vez de ;. Ejemplo de función de MySQL: DELIMITER $$ CREATE DEFINER=root@localhost FUNCTION concat_of_node(v_nodeID integer, v_separador TEXT) RETURNS text CHARSET utf8 READS SQL DATA BEGIN DECLARE v_text text; DECLARE v_texto_temp text; DECLARE v_parentNodeID int; DECLARE v_currentNode int; DECLARE v_parentNode int; declare v_The_End BOOL default FALSE; declare continue handler for not found set v_The_End := TRUE; SET v_currentNode = v_nodeID; SET v_text = ; WHILE (v_The_End = false) DO SELECT tblcfgfamcomerciales.famIDPadre, famTitulo_es into v_parentNode, v_texto_temp FROM tblcfgfamcomerciales WHERE tblcfgfamcomerciales.famId = v_currentNode; SET v_currentNode = v_parentNode; IF (v_The_End = false) THEN IF (v_text = ) THEN SET v_text = v_texto_temp; ELSEIF (v_texto_temp <> '') THEN SET v_text = CONCAT(v_texto_temp,v_separador,v_text); END IF; END IF; end while; return v_text; END