游标
游标的特性
- 不敏感:数据库可以选择不复制结果集
- 只读
- 不滚动:游标只能向一方向前进,并且不可以跳过任何一行数据
游标的优点
- 游标是针对行操作的,对从数据库中 select 查询得到的结果集的 每一行可以
- 进行分开的独立的相同或者不相同的操作,是一种分离的思想。
游标的缺点
- 性能不高
- 只能一行一行操作
- 使用游标会产生死锁,造成内存开销大
游标的适用场景
- 存储过程
- 函数
- 触发器
- 事件
游标使用方法
游标五步法: - 一、声明一个游标:
- DECLARE cursor_name CURSOR FOR select_statement 这个语句声明一个游标。也可以在子程序中定义多个游标,一个块中的每一个游标必须命名唯一。声明游标后也是单条操作的。
- 二、打开定义的游标:
- OPEN cursor_name 这个语句打开先前声明的游标。
- 三、获得下一行数据:
- FETCH cursor_name INTO var_name [, var_name] … 这个语句用指定的打开游标读取下一行(如果有下一行的话),并且前进游标指针至该行。
- 四、需要执行的语句(增删改查):这里视具体情况而定
- 五、释放游标:
- CLOSE cursor_name 这个语句关闭先前打开的游标,注意,用完后必须关闭。
1 | DROP PROCEDURE UpdateImgURL; |
1 | BEGIN |