-- 定义存储过程
DELIMITER //
CREATE PROCEDURE alter_table () BEGIN
-- 定义拼装sql变量
DECLARE
sqlstr VARCHAR ( 12560 );
-- 定义游标记录变量
DECLARE
flag INT DEFAULT 0;
-- 定义表名记录变量
DECLARE
tableName VARCHAR ( 60 );
-- 获取满足条件的表名集合——游标
DECLARE
tableNames CURSOR FOR ( SELECT table_name FROM information_schema.TABLES WHERE table_name LIKE '表名' ORDER BY table_name );
-- 游标变量
DECLARE
CONTINUE HANDLER FOR NOT FOUND
SET flag = 1;
-- 拼装sql变量初始值
set sqlstr = '';
-- 开启游标
OPEN tableNames;
-- 取出游标里的值赋予表名记录变量
FETCH tableNames INTO tableName;
-- 开始循环
WHILE
flag <> 1 DO
-- 拼装sql
SET sqlstr = concat ( sqlstr, ' alter table ', tableName, ' modify column 列名 varchar(32);' );
-- 取出游标里的值赋予表名记录变量
FETCH tableNames INTO tableName;
END WHILE;
-- 关闭游标
CLOSE tableNames;
-- 查询拼装sql变量的值
select sqlstr;
END;
//
DELIMITER;
-- 执行存储过程
CALL alter_table ();
-- 执行完,删掉临时用的存储过程
DROP PROCEDURE alter_table;
批量修改表结构
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。