1 创建存储过程 batchAddField:给所有"MyDB_"开头的数据库添加新字段

-- ----------------------------
-- Procedure structure for batchAddField
-- ----------------------------
DROP PROCEDURE IF EXISTS `batchAddField`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `batchAddField`(IN `tableName` varchar(100),IN `fieldName` varchar(100),IN `fieldType` varchar(100),IN `defaultValue` varchar(1000))
BEGIN #数据库名称
DECLARE schemaName VARCHAR(100); #声明结束标识
DECLARE end_flag int DEFAULT 0;
#声明游标 curosr ,查找所有“MyDB_”开头的数据库
DECLARE curosr CURSOR FOR select TABLE_SCHEMA from information_schema.`TABLES` WHERE TABLE_SCHEMA like 'MyDB_%' and table_name = tableName;
#设置终止标志
DECLARE CONTINUE HANDLER FOR NOT FOUND SET end_flag=1; #打开游标
OPEN curosr; #遍历游标
loop_label: LOOP FETCH curosr INTO schemaName;#获取当前游标指针记录,取出值赋给自定义的变量 IF end_flag > 0 THEN
LEAVE loop_label;
END IF; SET @sqlStr=CONCAT('alter table ',schemaName,'.',tableName,' add column `',fieldName,'` ',fieldType,' DEFAULT ''',defaultValue,''' ');
PREPARE stmt from @sqlStr;
EXECUTE stmt; END LOOP; #关闭游标
close curosr;
END
;;
DELIMITER ;

2 调用存储过程:

batchAddField('Users','score','int(8)','0') //添加int型字段score默认值:0
batchAddField('Users','memo','varchar(1000)','blank') //添加varchar型字段memo默认值:blank

最新文章

  1. IE中的fireEvent和webkit中的dispatchEvent
  2. [原创] hadoop学习笔记:卸载和安装jdk
  3. Counting Rectangles
  4. 在饼图上显示百分比值(报表生成器和 SSRS)
  5. 【http】client
  6. Uva_11762 Race to 1
  7. FPGA知识大梳理(二)verilogHDL语法入门(1)
  8. The Clocks
  9. 2017-3-2 C#基础 结构体
  10. Docker学习笔记 - Docker的基本概念
  11. 初探奥尔良(Orleans)
  12. 浅谈mybatis如何半自动化解耦
  13. leetcode(js)算法10之正则表达式匹配
  14. 结对项目-WordCount
  15. [转]PHP开发者必须了解的工具—Composer
  16. LeetCode(100):相同的树
  17. C#实现RSA加密与解密、签名与认证(转)
  18. __dict__和dir()的区别:未完
  19. 【Smali】Smali文件的动态调试
  20. win10上跑 sqlserver 2000应用程序

热门文章

  1. .net core 3.0 发布 500.0 - ANCM In-Process Handler Load Failure 错误
  2. POJ-1976-A Mini Locomotive-dp
  3. Vue .sync修饰符与$emit(update:xxx)写法问题
  4. Python全栈开发:运算符
  5. [转]async & await 的前世今生(Updated)
  6. CSS3 学习笔记(动画 多媒体查询)
  7. 网络编程(client发信息给server)
  8. thinkphp 统计查询
  9. Django 补充知识
  10. jquery ajax 放在重复点击事件beforeSend方法