游标支持表名变量的存储过程写法

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:
 
  1. DELIMITER $$ 
  2.  
  3. DROP PROCEDURE IF EXISTS `hcymysql`$$ 
  4.  
  5. CREATE DEFINER=`admin`@`%` PROCEDURE `hcymysql`(IN v_tname VARCHAR(20)) 
  6. BEGIN 
  7. DECLARE i INT;  
  8. DECLARE done INT DEFAULT 0;  
  9. DECLARE hcymysql_cursor CURSOR FOR SELECT id FROM view_tname; 
  10. DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1
  11.  
  12. DROP VIEW IF EXISTS view_tname ; 
  13. SET @sql=CONCAT("create view view_tname as select * from ", v_tname); 
  14. PREPARE stmt1 FROM  @sql; 
  15. EXECUTE stmt1 ; 
  16. DEALLOCATE PREPARE stmt1; 
  17.  
  18. OPEN hcymysql_cursor; 
  19.  
  20. select_loop: LOOP  
  21.  
  22. FETCH hcymysql_cursor INTO i; 
  23.  
  24. IF done=1 THEN 
  25.    LEAVE select_loop;  
  26. END IF;  
  27.  
  28. SELECT i; 
  29.  
  30. END LOOP select_loop; 
  31.  
  32. CLOSE hcymysql_cursor; 
  33.  
  34. END$$ 
  35.  
  36. DELIMITER ; 

执行:

 
  1. mysql> select * from t1; 
  2. +------+------+ 
  3. | id   | name | 
  4. +------+------+ 
  5. |    1 | a    |  
  6. |    2 | b    |  
  7. |    3 | cc   |  
  8. |    4 | d    |  
  9. |    5 | e    |  
  10. |    6 | f    |  
  11. |    7 | g    |  
  12. |    8 | h    |  
  13. |    9 | i    |  
  14. |    9 | h    |  
  15. +------+------+ 
  16. 10 rows in set (0.03 sec) 
  17.  
  18. mysql> call hcymysql('t1'); 
  19. +------+ 
  20. | i    | 
  21. +------+ 
  22. |    1 |  
  23. +------+ 
  24. 1 row in set (0.17 sec) 
  25.  
  26. +------+ 
  27. | i    | 
  28. +------+ 
  29. |    2 |  
  30. +------+ 
  31. 1 row in set (0.19 sec) 
  32.  
  33. +------+ 
  34. | i    | 
  35. +------+ 
  36. |    3 |  
  37. +------+ 
  38. 1 row in set (0.21 sec) 
  39.  
  40. +------+ 
  41. | i    | 
  42. +------+ 
  43. |    4 |  
  44. +------+ 
  45. 1 row in set (0.23 sec) 
  46.  
  47. +------+ 
  48. | i    | 
  49. +------+ 
  50. |    5 |  
  51. +------+ 
  52. 1 row in set (0.26 sec) 
  53.  
  54. +------+ 
  55. | i    | 
  56. +------+ 
  57. |    6 |  
  58. +------+ 
  59. 1 row in set (0.29 sec) 
  60.  
  61. +------+ 
  62. | i    | 
  63. +------+ 
  64. |    7 |  
  65. +------+ 
  66. 1 row in set (0.32 sec) 
  67.  
  68. +------+ 
  69. | i    | 
  70. +------+ 
  71. |    8 |  
  72. +------+ 
  73. 1 row in set (0.35 sec) 
  74.  
  75. +------+ 
  76. | i    | 
  77. +------+ 
  78. |    9 |  
  79. +------+ 
  80. 1 row in set (0.37 sec) 
  81.  
  82. +------+ 
  83. | i    | 
  84. +------+ 
  85. |    9 |  
  86. +------+ 
  87. 1 row in set (0.40 sec) 
  88.  
  89. Query OK, 0 rows affected (0.43 sec) 

 















本文转自hcymysql51CTO博客,原文链接: http://blog.51cto.com/hcymysql/1046929,如需转载请自行联系原作者


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8月前
|
存储 SQL 数据库
数据库sql语句-----游标和存储过程
数据库sql语句-----游标和存储过程
66 1
|
7月前
|
存储 SQL 关系型数据库
MySQL存储过程_触发器_游标——Baidu Comate
MySQL存储过程_触发器_游标——Baidu Comate
61 0
|
7月前
|
存储 关系型数据库 MySQL
MySQL数据库——存储过程-游标(介绍-声明游标、打开游标、获取游标记录、关闭游标,案例)
MySQL数据库——存储过程-游标(介绍-声明游标、打开游标、获取游标记录、关闭游标,案例)
324 0
|
7月前
|
存储 SQL 关系型数据库
MySQL数据库——存储过程-变量(系统变量、用户定义变量、局部变量)
MySQL数据库——存储过程-变量(系统变量、用户定义变量、局部变量)
588 0
|
7月前
|
存储 关系型数据库 MySQL
Mysql存储过程查询结果赋值到变量
Mysql存储过程查询结果赋值到变量
171 0
|
7月前
|
存储 关系型数据库 MySQL
mysql 存储过程游标 循环输出select 查询结果
mysql 存储过程游标 循环输出select 查询结果
140 0
|
8月前
|
存储 SQL Oracle
02-PostgreSQL 存储过程的进阶介绍(含游标、错误处理、自定义函数、事务)
02-PostgreSQL 存储过程的进阶介绍(含游标、错误处理、自定义函数、事务)
|
8月前
|
存储 SQL 定位技术
数据库基础(六):T-SQL语言程序设计、游标定义与使用及存储过程创建与信息查找
数据库基础(六):T-SQL语言程序设计、游标定义与使用及存储过程创建与信息查找
120 1
|
8月前
|
存储 SQL Oracle
|
8月前
|
存储 SQL 关系型数据库
⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..
⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..
109 0