这里指的是自定义函数,不是mysql中的内置函数
DELIMITER $$
DROP FUNCTION IF EXISTS genPerson$$
CREATE FUNCTION genPerson(NAME VARCHAR(20)CHARSET utf8) RETURNS VARCHAR(50) CHARSET utf8
BEGIN
DECLARE str VARCHAR(50) CHARSET utf8 DEFAULT '';
SET @tableName=NAME;
SET str=CONCAT('你好',@tableName);
RETURN str;
END $$
DELIMITER ;
SELECT genPerson('马云')
1)DELIMITER $$ 定义结束符。MySQL默认的结束符是分号,但是函数体中可能用到分号。为了避免冲突,需要另外定义结束符。
(2)DROP FUNCTION IF EXISTS genPerson$$ 如果函数genPerson已经存在了,就删除掉。
(3)CREATE FUNCTION 创建函数genPerson,函数的参数是name,返回值是varchar(50)。
(4)函数体放在BEGIN 与 END之间。
(5)DECLARE 声明变量,str类型是varchar(50),默认值是空。CHARSET utf8 设置格式,否则中文乱码
(6)CONCAT连接多个字符串。
(7)RETURN 返回拼接后的字符串str。
附上执行结果
image.png