mysql中的自定義函數


一、基本語法

  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 ;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM