Mysql 批量修改字段存储过程
来源:互联网 发布:阿里云对象存储oss 编辑:程序博客网 时间:2024/06/08 10:47
-- 删除batchUpdateColumn
DROP PROCEDURE IF EXISTS batchUpdateColumn;
-- 创建batchUpdateColumn
CREATE PROCEDURE batchUpdateColumn(IN tableName varchar(64),IN oldType varchar(64), IN newType varchar(64))
BEGIN
-- 定义变量,游标
DECLARE tn varchar(64);
DECLARE cn varchar(64);
DECLARE done INT;
-- 定义结果集,查出表名与字段
DECLARE rs CURSOR FOR (SELECT TABLE_NAME as tn,COLUMN_NAME as cn FROM INFORMATION_SCHEMA.columns WHERE TABLE_SCHEMA = tableName AND COLUMN_TYPE = oldType);
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN rs;
-- 开始循环
read_loop: LOOP
FETCH NEXT from rs INTO tn,cn;
IF done THEN
LEAVE read_loop;
END IF;
-- 拼接修改字段sql
SET @tempsql = CONCAT('ALTER TABLE ',tn,' MODIFY COLUMN ',cn,' ', newType);
-- 执行sql
PREPARE stmt FROM @tempsql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END LOOP;
CLOSE rs;
END;
-- 调用存储过程
call batchUpdateColumn('lyf','varchar(10)','varchar(30)');
DROP PROCEDURE IF EXISTS batchUpdateColumn;
-- 创建batchUpdateColumn
CREATE PROCEDURE batchUpdateColumn(IN tableName varchar(64),IN oldType varchar(64), IN newType varchar(64))
BEGIN
-- 定义变量,游标
DECLARE tn varchar(64);
DECLARE cn varchar(64);
DECLARE done INT;
-- 定义结果集,查出表名与字段
DECLARE rs CURSOR FOR (SELECT TABLE_NAME as tn,COLUMN_NAME as cn FROM INFORMATION_SCHEMA.columns WHERE TABLE_SCHEMA = tableName AND COLUMN_TYPE = oldType);
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN rs;
-- 开始循环
read_loop: LOOP
FETCH NEXT from rs INTO tn,cn;
IF done THEN
LEAVE read_loop;
END IF;
-- 拼接修改字段sql
SET @tempsql = CONCAT('ALTER TABLE ',tn,' MODIFY COLUMN ',cn,' ', newType);
-- 执行sql
PREPARE stmt FROM @tempsql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END LOOP;
CLOSE rs;
END;
-- 调用存储过程
call batchUpdateColumn('lyf','varchar(10)','varchar(30)');
阅读全文
0 0
- Mysql 批量修改字段存储过程
- 存储过程批量修改MySql引擎
- 存储过程批量修改表中字段值
- mysql批量查询、修改表, 批量删除存储过程
- --------------------------------------MYSQL批量修改字段类型---------------------------------
- 表修改字段存储过程
- mysql 批量修改字段 mysql update replace
- MySQL修改存储过程
- MySQL存储过程-批量插入
- MySQL 存储过程 批量插入
- 关于mysql存储过程(表数据同步批量新增,批量修改)
- mysql存储过程从表取数据存储到游标然后批量修改
- mysql批量修改某字段的值
- MySQL批量修改一个字段的部分内容
- 批量修改mysql 表格字段编码
- 批量修改表、存储过程的所有者
- 批量修改存储过程的所有者
- 如何实现对多台mysql实例的存储过程definer进行批量修改
- H5测试点总结分析
- Initialization-on-demand holder idiom 单例
- 数据结构——红黑树
- Netfilter 框架
- maven引用maven项目遇到的问题
- Mysql 批量修改字段存储过程
- C void*
- Hdu 6215 Brute Force Sorting【链表】
- mysql查询逗号分隔字段匹配的值,可且可或
- 【分布式3】——Chubby与Paxos
- 那么试着分析下对应的VO类是否存在问题
- 【区块链】Truffle 部署和测试
- 既定Map中一组数,如:Map<"key1",11>,Map<"key2",33> Map<"key3",3>,Map<"key4",31>,Map<key5,45> 求出最大值
- 2017乌鲁木齐网络赛