mysql存储过程⼆维数组_MySQL数据篇(⼋)--存储过程的简
单实现
思考:⼀般我们的数据都是存储在数据库⾥⾯,对于常规的CRUD操作都是⽤代码实现,⽐如使⽤PHP做项⽬,所有的数据处理都需要主动操作代码实现。如果我们现在有⼀项⽬,业务需要在⽤户下单后,对⽤户的订单进⾏分润处理,⽐如在每个⽉的21号,对上个⽉所有的订单按设置的规则进⾏分润处理,当然shll脚本也可以实现,但是今天我们说的是如何通过数据库“存储过程”和“事件”来实现。
1、简单的理解“存储过程”就是我们平时写的SQL的集合,⾥⾯可能包含IF判断或者posLoop:LOOP循环和我们平时写PHP代码差不多,就是为了实现某个操作(CRUD);
“事件”,就是我们设置的⼀个⾃动开关,可以按照我们设置的时间,⽐如每天12:00或者每分钟处理⼀次(调⽤你写的存储过程)。
101010的补码
2、⽐如我们常⽤的Navicat的数据库管理⼯具,第⼀个栏⽬是我们常⽤的“表”,第三个和第四个就是我们所说的“存储过程”和“事件”。
⼆、简单的需求。
1、⽐如我们有⼀张表 t_user,需要每2分钟处理⼀下,如果 type 字段值为 1,则把 num 的值修改为 500。
击穿场强是什么2、新建⼀个过程
3、具体SQL代码。代码⼤致说明⼀下:
:SQL⾥⾯所有需要⽤到的变量,都需要先定义,所有我们先定义了⼀下三个变量。
:
然后创建游标,相当于我们代码⾥⾯先获取数据,获取⼀个⼆维数组的 List ,并且把它放在 cur_test ⾥⾯,如果游标内容执⾏完成,就将 done的值设置为 1 。
:打开游标,相当于开始获取到这个变量。开始循环,相当于我们经常做的 foreach 循环数组操作,先判断下,然后取出游标中的值,赋值给 定义好的变量。相当于我们key 和 value 键名 键值,然后判断满⾜即修改。
:最后结束循环的标⽰和释放游标。
方舟生存进化capacity什么意思:可以点击运⾏,如果没有问题就可以查看是否更改数据,有问题会有提⽰错误。
BEGIN#处理t_user如果type= 1,则将num修改为200
#定义变量DECLARE done int;#定义游标标记DECLARE t_id int;#定义需要处理的id值DECLARE t_type int;#定义记录值类型
switch怎么看是不是新机#创建游标,并存储数据DECLARE cur_test CURSOR
FOR
SELECT id,type FROM t_user LIMIT 500;
#游标中的内容执⾏完后将done设置为1DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
#打开游标OPENcur_test;日月光华pytorch
#执⾏循环
posLoop:LOOP
#判断是否结束循环IF done = 1 THENLEAVE posLoop;END IF;
#取游标中的值FETCH cur_test INTOt_id,t_type;
#如果type= 1,则将num修改为200IF t_type = 1 THEN#执⾏更新操作UPDATE t_user SET num = 200 WHERE id =t_id;END IF;
#结束循环ENDLOOP posLoop;
mysql查看所有存储过程#释放游标CLOSEcur_test;END
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论