将从表中查出的数据作为表名,对其进行操作

根据查出来的表名,将该表的数据全部插入到一个总表

CREATE DEFINER=`root`@`%` PROCEDURE `InsertIntoBrief`()

BEGIN

DECLARE table_name varchar(64);

-- 遍历数据结束标志

DECLARE done INT DEFAULT FALSE;

DECLARE cur_table CURSOR FOR select table_id from yp_table_mapping;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

truncate yp_brief;

OPEN cur_table;

-- 开始遍历

read_loop: LOOP

-- 赋值

FETCH NEXT from cur_table INTO table_name;

IF done THEN

LEAVE read_loop;

END IF;

set @s = concat("insert into yp_brief select * from ",table_name);

PREPARE s from @s;

EXECUTE s;

END LOOP;

CLOSE cur_table;

END

遍历所有表,判断是否存在某个字段,存在则修改该字段属性

CREATE DEFINER=`root`@`%` PROCEDURE `changeColumnName`()

BEGIN

DECLARE table_name varchar(64);

-- 遍历数据结束标志

DECLARE done INT DEFAULT FALSE;

-- 游标

DECLARE cur_table CURSOR FOR select table_id from yp_table_mapping;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

TRUNCATE yp_brief;

-- 打开游标

OPEN cur_table;

read_loop: LOOP

FETCH NEXT from cur_table INTO table_name;

IF done THEN

LEAVE read_loop;

END IF;

if EXISTS(SELECT * FROM information_schema.columns WHERE table_schema = 'database_name' AND table_name = table_name AND column_name = 'a') then

-- 修改字段名称

set @s = concat("ALTER TABLE ",table_name," CHANGE a b varchar(255)");

PREPARE s from @s;

EXECUTE s;

END IF;

END LOOP;

CLOSE cur_table;

END

mysql fetch next from_MySql 存储过程 动态sql相关推荐

  1. mysql存储过程动态sql

    mysql存储过程中,变量直接拼接在执行sql上会把变量解析成 '变量执行',比如: DECLARE v_condition VARCHAR(4) DEFAULT 'id=1'; select * f ...

  2. mysql防注入pdo_mysql PDO和存储过程动态SQL注入

    正如我在许多文章中看到的那样,存储过程中的动态SQL容易受到SQL注入的攻击.但是,如果我们将先前的PDO与准备好的语句一起使用,这仍然不安全吗? 例: CREATE PROCEDURE my_sp( ...

  3. oracle 动态声明变量_oracle存储过程动态sql变量赋值

    如何动态执行存储过程或函数 目前在Oracle数据库存储过程研发过程中,遇到需要从某张表中读取存储过程名并进行动态执行的情况,经查找资料,制作成DEMO,并通过测试,现共享下,以备其他同事遇到此种情况 ...

  4. oracle创建存储过程动态sql,Oracle存储过程使用动态SQL

    Oracle存储过程使用动态SQL 有两种写法:用 DBMS_SQL 或 execute immediate,建议使用后者.试验步骤如下: 1:DDL和DML /*** DDL ***/ begin ...

  5. oracle存储过程动态sql单引号拼接和变量拼接

    1.单引号的作用 在oracle中单引号主要有两个作用: 一是字符串都用单引号引用,例如'abc':二是转义符,转义符在使用时一般会出现多个连在一起的单引号,相对难理解一些.下面举例说明. 实例1:s ...

  6. oracle存储过程动态SQL中引号的使用

    写存储过程时,引号是一个永远避不开的祸,如果只是单个引号的话很好用,比如向表中插入数据, 1.直接插(字符型加上引号就行) INSERT INTO DEPT (DEPTNO,DNAME,LOC) VA ...

  7. mysql二级缓存,mybatis的动态sql和二级缓存

    mybatis的#{}和${}的区别就像是 PreparedStatement 和statement , 使用${}接收的参数还需用@Param注解修饰 , 推荐用#{} 动态SQL MyBatis ...

  8. 取第N个排序的元素之Mysql存储过程动态SQL order by offset实现案例

    Mysql 动态取第N个元素 简介 基于mysql实现对某个表的某个字段按照顺(逆)序取第N个排序对应的元素,该语句通过存储过程结合预处理实现,也可在程序语言里通过SQL拼接实现. 示例 --1存储过 ...

  9. mysql存储过参数拼接_mysql 存储过程动态拼接sql并执行赋值

    CREATE DEFINER = CURRENT_USER PROCEDURE `NewProc`(in _xnb varchar(50)) BEGIN ## 定义变量 DECLARE _num FL ...

最新文章

  1. bootstarp js设置列隐藏_隐藏工作表的行、列(第一种简单,第二种很坑,第三种最坑)...
  2. linux内核之旅ppt_微软Windows 10防病毒现已可用Linux上
  3. XML Schema是什么
  4. java统计系统线程数_Java并发(八)计算线程池最佳线程数
  5. php 规则配置,模块Config配置规则
  6. 微信支付之JSAPI开发-第二篇:业务流程详解与方案设计
  7. 关于java方向的思考
  8. 如何在工具类中注入Service
  9. 7个必收藏的免商用无版权的高清图片网站
  10. 2017年大数据会是广告市场最后一根救命草吗?
  11. 第44件事 用户运营的5个关键环节
  12. 新概念英语第四册41-48课(转)
  13. 戴老师论文阅读:Two-Timescale Channel Estimation for Reconfigurable Intelligent Surface Aided Wireless...
  14. PSINS工具箱15状态组合导航仿真程序(test_SINS_GPS_153)浅析-卡尔曼滤波设置+导航解算
  15. 原创 【我的OpenGL学习进阶之旅】介绍一下OpenGL ES的 遮挡查询
  16. python爬虫之爬取知乎发现
  17. ulua中lua代码使用反射调用c#详解
  18. 个人对银行知识的几点认识和理解
  19. 【高速数字化仪应用案例系列】虹科Spectrum在天文领域的应用
  20. 中国慕课行业建设分析与十四五发展模式调研报告2022版

热门文章

  1. RxJs SwitchMapTo 操作符之移花接木
  2. 一小时内在本地搭建 SAP Commerce Cloud(电商云)的前后台运行环境
  3. SAP Spartacus 服务器端渲染编程规范
  4. 一个讨论:SAP项目实施的顾问,需要花时间去调试代码了解技术细节吗
  5. Scala里List(1,2,3)和(1,2,3)的区别
  6. resolveType - when is date type for DateFormat used when initialization
  7. 如何找出Fiori frontend server的systen ID
  8. 使用SAP Leonardo上的机器学习服务提取图片的特征向量
  9. 使用await和async关键字开发nodejs应用批量取出简书网站的文章标题和超链接
  10. Authorization object的where used列表功能,位于事务码SUIM