zoukankan      html  css  js  c++  java
  • 数据库---创建函数,存储函数,触发器实例

    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;
  • 相关阅读:
    阿里巴巴公布合伙人名单,董建华成为独董,俞永福未进入合伙人
    android cookie
    在Android的webview中定做js的alert,confirm和prompt对话框的方法
    浅谈WebView的使用 js alert
    Android的移动存储之SharedPreferences
    [android]-如何在向服务器发送request时附加已保存的cookie数据
    layout_weight
    我们是如何认识世界的
    挣钱和花钱
    时刻牢记“我是谁、为了谁、依靠谁” 始终践行党的群众观点和群众路线
  • 原文地址:https://www.cnblogs.com/1301694f/p/8452706.html
Copyright © 2011-2022 走看看