存储过程-第四课(语法)

来源:互联网 发布:mac能打的网游 编辑:程序博客网 时间:2024/06/13 06:50

一、游标使用

  1)定义

        DECLARE cursor_name CURSOR FOR SELECT_statement;

  2)操作游标

        OPEN 打开游标   OPEN cursor_name

        FETCH获取游标当前指针的记录,并传给指定变量列表,并传给指定变量列表,注意变量数必须与MySQL游标返回的字段数一致,要获得多行数据,使用循环语句去执行FETCH

                       FETCH     cursor_name     INTO    variable   list;

        CLOSE关闭游标     CLOSE cursor_name

   注意:MySQL的游标是向前只读的,也就是说,你只能顺序地从开始往后读取结果集,不能从后往前,也不能直接跳到中间的记录.

DECLARE CONTINUE HANDLER FOR NOT FOUND SET  l_last_sale=1;它的含义是:若没有数据返回,程序继续,并将变量l_last_sale设为1 ,这种情况是出现在select XX into XXX from tablename的时候发生的。

例如:


二、触发器

        语法:

                  create trigger triggerName
                  after/before insert/update/delete on 表名
                  for each row   #这句话在mysql是固定的
                  begin
                      sql语句;
                  end;

        对于insert而言,新插入的行用new来表示,行中的每一列的值用new.列名来表示

        对于delete而言:原本有一行,后来被删除,想引用被删除的这一行,用old来表示,old.列名可以引用被删除的行的值。

        对于update而言:被修改的行,修改前的数据,用old来表示,old.列名引用被修改之前行中的值;

0 0
原创粉丝点击