美文网首页
批量修改表结构

批量修改表结构

作者: zhangweisep | 来源:发表于2020-10-21 13:33 被阅读0次
-- 定义存储过程
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;

相关文章

网友评论

      本文标题:批量修改表结构

      本文链接:https://www.haomeiwen.com/subject/dhosmktx.html