学斋随笔,初九潜龙勿用,-30触发器,存储函数,存储过程

    关于触发器,在mysql中,触发器是一种机制,就像一个闹钟,事先预定好义好一段代码,该段代码无需人工调用,而是会在预定好的某个情况下自动执行。

        通常有6种情况,对某个数据表的增(或删或改)之前(或之后)。

        触发器内部也跟存储过程或存储函数一样,属于“编程环境”。

        不能返回数据。

 

        也不能有select语句。

        也没有参数,也不能调用,而是在触发的情况下自动调用(执行)。

 

    触发器的定义形式:    

    create  trigger  触发器名字  before(或after)  insert(或update或delete)  on  表名 for  each  row begin

 

    要执行的代码,语句块,编程环境,但不能使用select语句。

 

    end;

    在触发器内部,其中有两个关键字具有特定含义和数据获取作用:

 

    new:代表新插入的一条数据,在insert事件的时候有效。

 

    old:代表旧的一条数据,在update或delete的时候有效。

 

   存储函数 

    跟系统函数的调用形式一样,直接使用名字,并带括号,以及根据需要带实参。

 

    栗子:

 

    select  3, now(), f1(); //f1为自定义的存储函数。

 

    select  3, now(), f2(3, ‘abc’,  @v1); //带3个实参,其中@v1是一个前面赋值了的变量。

 

    需要返回一个数据值;

 

    不能有select语句;

 

    调用时直接当作一个“数据”来使用,即可以用于select或别的各种数据操作语句中。  

  存储过程

 

    存储过程就是一个没有返回值数据值的“函数”。

 

    虽然存储过程不返回单个数据值,但可以“返回”结果集——这里的返回起始就是select语句的正常结果表现。

 

 

    存储过程调用形式:call  存储过程名(实参1,实参2,.....);

 

 

 

 

 

 

   

    

 

 

 

 

存储过程调用形式:

posted @ 2019-01-05 16:38  玩转手绘  阅读(121)  评论(0)    收藏  举报