一、基本語法
delimiter 自定義符號 -- 如果函數體只有一條語句, begin和end可以省略, 同時delimiter也可以省略
create function 函數名(形參列表) returns 返回類型 -- 注意是retruns
begin
函數體 -- 函數內定義的變量如:set @x = 1; 變量x為全局變量,在函數外面也可以使用
返回值
end
自定義符號
delimiter ;
二、示例
-- 自定義函數 delimiter $$ create function myfun3(ia int, ib int) returns int begin return ia + ib; end $$ delimiter ;
三、查看函數
1. show function status [like 'pattern']; -- 查看所有自定義函數, 自定義函數只能在本數據庫使用。
2. show create function 函數名; -- 查看函數創建語句
四、刪除函數
drop function 函數名;
五、綜合應用
1. 使用全局變量
-- 計算1 ~ 指定數據之間的和 delimiter $$ create function my_sum(x int) returns int begin set @i = 1; set @sum = 0; while @i <= x do set @sum = @sum + @i; set @i = @i + 1; end while; return @sum; end $$ delimiter ;
2. 使用局部變量
-- 求1 ~ 指定數之前的和,但5的倍數不加 delimiter $$ create function my_sum2(x int) returns int begin declare i int default 1; declare sum int default 0; sumwhile:while i <= x do if i % 5 = 0 then set i = i + 1; iterate sumwhile; end if; set sum = sum + i; set i = i + 1; end while; return sum; end $$ delimiter ;