数据库游标

游标(trigger)是每个学数据库的童鞋必定会接触到的名词,那么游标的作用是什么呢?我记得我上学那会学到游标,书上只给了一个例子:从某个表中逐个读取数据,当时我在想,逐个读取和一次读取有什么区别?这个问题随着其它学习任务被搁置了。

直到前段时间,由于有某种特殊需求,即:根据数据库中每条数据的若干字段组合,计算出该条数据的特征值(和Hash值类似),并更新到该行的特征字段(Character),刚开始想用每条数据的Id(自增的)取出这条数据之后,再计算特征值更新到相应字段中,但是总感觉这样不太妥当,一是想挑战一下自己的知识面,二是想对以往掌握的理论知识加以实践,于是,我采用了游标:

当时的做法是:

一,定义一个游标

二,逐条读取游标中的数据,并且将读到的当前行的数据提取出来保存,对某些字段进行运算,得出特征值,然后将特征值更新到改行的指定字段中

这样做等于是将计算和更新放到数据库端来做,在某方面加剧了数据库的压力,但是速度绝对是有提升的,并且这种计算不会经常进行,因此综合实际情况分析之后,才使用游标。针对本例,如果计算特征值时,必须要在客户端做一些处理,那么恐怕用游标就不那么灵活了,这里也建议各位自行判断优劣,做出取舍,毕竟,如果两种情况(在数据库计算和在程序中计算)都可以,使用游标也是对自己的一种锻炼。

结语:只有多动手,多思考,才能将更多的理论转化为实践。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值