1. 程式人生 > >數據庫---創建函數,存儲函數,觸發器實例

數據庫---創建函數,存儲函數,觸發器實例

存儲函數 創建 設定 after gpo ble 一個表 copy xiang

1、創建函數

create function getPingfanghe(x float, y float)
returns float
begin
    #此函數體範圍內,就是所謂的“編程環境”

    set @result = x*x + y*y; #“定義”會話變量並賦值
    return @result;
end;
create function getPingfanghe2(x float, y float)
returns float
begin
    #此函數體範圍內,就是所謂的“編程環境”
    #此範圍就可以使用普通變量,已經各種流程控制結構
    declare
result float default 0; #定義普通變量並設定初值 set result = x*x + y*y; return result; end;

2、創建過程:

//此存儲過程意圖用於傳入兩個數據並將該兩個數據插入表enum_test中。

create procedure  pro1 (n int, xuanxiang varchar(20) )
begin
    insert into enum_test (id, xuanxiang)values(n, xuanxiang);
end;

3、具有out作用的存儲過程

create procedure getXiebian( z1 float
, z2 float, out xiebian float) begin set @pingfanghe = getPingfanghe(z1, z2);#調用函數去計算平方和 set xiebian = pow(@pingfanghe, 0.5); end; //該存儲過程調用的時候,第3個參數必須是一個變量

4、使用select的存儲過程

create procedure  gettables()
begin
    select * from enum_test;
    select * from set_test;
    select * from tab5;
end
;

5、定義一個觸發器,讓該觸發器可以在tab5插入數據的時候,
自動將其實不部分數據插入另一個表中以供“外方合作單位”使用。
①tab5的字段為:id, f1, f2, f4, id2;
②要插入的另一個表的字段為:id, f1, f2

技術分享圖片
create trigger getSubData  after insert on tab5 for  each  row 
begin
    #set @id = new.id;    #new在觸發器中是特定關鍵字,
                        #代表“剛剛插入的數據行”,這裏代表其中的該行數據的id值
    #set @v1 = new.f1;    #新插入數據的f1字段的值
    #set @v2 = new.f2;    #新插入數據的f1字段的值
    insert into tab5_sub (f1, f2)values(new.f1,new.f2);
end;

數據庫---創建函數,存儲函數,觸發器實例