—— 阿尔伯特·爱因斯坦

程序员の奇妙冒险

常用SQL笔记MySQL
2025-04-08 23:42阅读:20评论:0

MySQL之游标

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
delimiter $
create PROCEDURE phoneDeal()
BEGIN
DECLARE ids varchar(64);
 
--
DECLARE done INT DEFAULT FALSE;
--
DECLARE cur_account CURSOR FOR SELECT id FROM shop_category WHERE pid='0';
--
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
 
--
OPEN cur_account;
--
read_loop: LOOP
--
FETCH NEXT from cur_account INTO ids;
IF done THEN
LEAVE read_loop;
END IF;
set @i = (SELECT UUID());
update shop_category set id = @i WHERE id=ids;
update shop_category set id=UUID(), pid = @i WHERE pid=ids;
END LOOP;
 
CLOSE cur_account;
END $
 
call phoneDeal();
 
评论(0)
暂无评论来抢沙发吧~