MySql存储过程批量删除多个数据库中同名表中的指定字段
2024-10-19 11:53:15
1、 创建存储过程batchDeleteField:删除所有名称为"MyDB_"开头的数据库中的指定字段
-- ----------------------------
-- Procedure structure for batchDeleteField
-- ----------------------------
DROP PROCEDURE IF EXISTS `batchDeleteField`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `batchDeleteField`(IN `tableName` varchar(100),IN `fieldName` varchar(100))
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,' drop column `',fieldName,'` ');
PREPARE stmt from @sqlStr;
EXECUTE stmt; END LOOP; #关闭游标
close curosr;
END
;;
DELIMITER ;
2、调用存储过程:
batchDeleteField('Users','score') //删除Users表中的score字段
最新文章
- Mysql-5.6.30卸载
- 18.python的异常处理
- swappiness
- mongoDB知识总结
- C语言赋值运算符
- 异常Crash之 NSGenericException,NSArray was mutated while being enumerated
- 4.4、Libgdx用法查询执行环境相关性
- JavaBean的属性变量名前两个字母大小写问题
- OpenStack搭建遇到的问题
- 2017年浙江理工大学程序设计竞赛校赛 题解&;源码(A.水, D. 简单贪心 ,E.数论,I 暴力)
- 查看Linux的所有线程
- redis命令Set类型(七)
- webpack-dev-server的简单使用
- EF使用sql语句
- ubuntu apt-get failed
- iis运行asp.net页面提示“服务器应用程序不可用”的解决办法_.NET.
- 利用VisualStudio单元测试框架举一个简单的单元测试例子
- a href 属性
- Linux下javaweb环境搭建
- Selenium+Chrome+PhantomJS爬取淘宝美食
热门文章
- day16_函数作用域_匿名函数_函数式编程_map_reduce_filter_(部分)内置函数
- Python学习详细教程-武沛齐
- Python编码decode和encode
- <;前端>;简单实现开心网注册
- P1417 烹调方案 /// DP(假设 简化公式 排序)
- 一次bug死磕经历之Hbase堆内存小导致regionserver频繁挂掉
- Ubuntu环境下使用Maven编译并打包Java项目
- sql 根据列名查所属表名
- opencv-图像遍历
- Luogu P2827 蚯蚓(模拟)