有时候仅凭 sql 语句可能达不到想要的数据操作目的,有可能需要写一些方法体,通过循环判断等操作最终达到目的。那么在数据库里实现这种方法体就需要存储过程了,个人觉得一个带注释的简单实例可以简单粗暴地解决大部分问题,当然要深入学习了解的话还是要看教程文档了,话不多说,上码:
- create procedure my_procedure()
- begin
- declare my_id varchar(32);
- declare my_name varchar(50);
- DECLARE done INT DEFAULT FALSE;
-
- DECLARE My_Cursor CURSOR FOR ( SELECT id, name FROM t_people );
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
-
- OPEN My_Cursor;
- myLoop: LOOP
- FETCH My_Cursor into my_id, my_name;
- IF done THEN
- LEAVE myLoop;
- END IF;
-
- UPDATE t_user SET c_name = my_name WHERE id = my_id and rtrim(ltrim(c_name)) = ‘‘;
-
- COMMIT;
- END LOOP myLoop;
- CLOSE My_Cursor;
- END;
sql 调用存储过程
sql 删除存储过程
- drop procedure my_procedure;
End .
【MySQL】存储过程、游标、循环简单实例
原文:http://www.cnblogs.com/Li-yuan/p/7163635.html