当前位置:Gxlcms > 数据库问题 > 数据库---创建函数,存储函数,触发器实例

数据库---创建函数,存储函数,触发器实例

时间:2021-07-01 10:21:17 帮助过:4人阅读

getPingfanghe(x float, y float) returns float begin #此函数体范围内,就是所谓的“编程环境” set @result = x*x + y*y; #“定义”会话变量并赋值 return @result; end;
  1. create <span style="color: #0000ff">function</span> getPingfanghe2(x <span style="color: #0000ff">float</span>, y <span style="color: #0000ff">float</span><span style="color: #000000">)
  2. returns </span><span style="color: #0000ff">float</span><span style="color: #000000">
  3. begin
  4. </span><span style="color: #008000">#</span><span style="color: #008000">此函数体范围内,就是所谓的“编程环境”</span>
  5. <span style="color: #008000">#</span><span style="color: #008000">此范围就可以使用普通变量,已经各种流程控制结构</span>
  6. <span style="color: #0000ff">declare</span> result <span style="color: #0000ff">float</span> <span style="color: #0000ff">default</span> 0; <span style="color: #008000">#</span><span style="color: #008000">定义普通变量并设定初值</span>
  7. set result = x*x + y*<span style="color: #000000">y;
  8. </span><span style="color: #0000ff">return</span><span style="color: #000000"> result;
  9. </span><span style="color: #008080">end</span>;

2、创建过程:

//此存储过程意图用于传入两个数据并将该两个数据插入表enum_test中。

  1. create procedure pro1 (n int, xuanxiang varchar(20<span style="color: #000000">) )
  2. begin
  3. insert into enum_test (id</span>, xuanxiang)values(n,<span style="color: #000000"> xuanxiang);
  4. </span><span style="color: #008080">end</span>;

3、具有out作用的存储过程

  1. create procedure getXiebian( z1 <span style="color: #0000ff">float</span>, z2 <span style="color: #0000ff">float</span>, out xiebian <span style="color: #0000ff">float</span><span style="color: #000000">)
  2. begin
  3. set @pingfanghe </span>= getPingfanghe(z1, z2);<span style="color: #008000">#</span><span style="color: #008000">调用函数去计算平方和</span>
  4. set xiebian = <span style="color: #008080">pow</span>(@pingfanghe, 0.5<span style="color: #000000">);
  5. </span><span style="color: #008080">end</span><span style="color: #000000">;
  6. </span><span style="color: #008000">//</span><span style="color: #008000">该存储过程调用的时候,第3个参数必须是一个变量</span>

4、使用select的存储过程

  1. <span style="color: #000000">create procedure gettables()
  2. begin
  3. select </span>*<span style="color: #000000"> from enum_test;
  4. select </span>*<span style="color: #000000"> from set_test;
  5. select </span>*<span style="color: #000000"> from tab5;
  6. </span><span style="color: #008080">end</span>;

5、定义一个触发器,让该触发器可以在tab5插入数据的时候,
自动将其实不部分数据插入另一个表中以供“外方合作单位”使用。
①tab5的字段为:id, f1, f2, f4, id2;
②要插入的另一个表的字段为:id, f1, f2

技术分享图片
  1. create trigger getSubData after insert on tab5 for each row
  2. begin
  3. #set @id = new.id; #new在触发器中是特定关键字,
  4. #代表“刚刚插入的数据行”,这里代表其中的该行数据的id值
  5. #set @v1 = new.f1; #新插入数据的f1字段的值
  6. #set @v2 = new.f2; #新插入数据的f1字段的值
  7. insert into tab5_sub (f1, f2)values(new.f1,new.f2);
  8. end;

数据库---创建函数,存储函数,触发器实例

标签:分享图片   sel   new   data-   res   values   代码   环境   efault   

人气教程排行