一、游标使用
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.列名引用被修改之前行中的值;