云淡风轻

  • 量化与交易
  • 关于站长
博学笃志 切问近思
  1. 首页
  2. 数据库
  3. 正文

MySql带游标的动态表名查询

2018年8月22日 1960点热度 2人点赞 0条评论

如果仅仅是动态表名的查询,可以通过函数等方式获取表名存储在变量@table_name之中,通过EXECUTE执行字符串即可

set @sqlStr := concat('SELECT tradedate from ',@table_name,' where ...');
PREPARE stmt from @sqlStr;
EXECUTE stmt;

如果是动态游标则有些麻烦,因为游标在声明时select语句必须指定,而游标的声明又必须在begin之后,其他语句之前
经过资料查询,可以使用临时视图的方式解决:声明时使用未创建的临时视图名,其后使用前述方法动态创建视图,然后再使用游标,最后清除视图即可

DECLARE order_cursor cursor
	for select tradedate from tmp_view_address where ...;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
SET @table_name = ...;
SET @v = concat('CREATE OR REPLACE VIEW tmp_view_address as SELECT * FROM ',@table_name);
    PREPARE stm FROM @v;
    EXECUTE stm;
    DEALLOCATE PREPARE stm;
open order_cursor;
#...
close order_cursor;
drop view tmp_view_address;
标签: 暂无
最后更新:2018年8月22日

世平矿

博学笃志,切问近思

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

世平矿

博学笃志,切问近思

分类
  • C++
  • 交易执行
  • 其他
  • 区块链
  • 固定收益
  • 技术指标
  • 数据库
  • 机器学习
  • 网站
  • 资产配置
  • 量化与交易
归档
  • 2025 年 2 月
  • 2024 年 12 月
  • 2022 年 1 月
  • 2021 年 6 月
  • 2021 年 1 月
  • 2020 年 12 月
  • 2019 年 4 月
  • 2018 年 12 月
  • 2018 年 11 月
  • 2018 年 10 月
  • 2018 年 9 月
  • 2018 年 8 月
  • 2018 年 6 月
  • 2018 年 5 月
  • 2018 年 4 月
  • 2018 年 2 月
  • 2018 年 1 月
  • 2017 年 12 月
  • 2017 年 11 月
  • 2017 年 10 月
  • 2017 年 9 月
  • 2017 年 7 月
  • 2017 年 6 月
  • 2017 年 5 月

COPYRIGHT © 2025 lishiping.site. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang