Fork me on GitHub

通过调用存储过程来执行sql语句

通过调用存储过程来执行sql语句

1、自定义存储过程

CREATE DEFINER=`root_super`@`%` PROCEDURE `p_aa_updatecolumn`(IN tablename varchar(50), IN columnname varchar(50),
                                    IN executeStr varchar(1000), IN executeType varchar(50))
BEGIN
        DECLARE  CurrentDatabase VARCHAR(100);
        SELECT DATABASE() INTO CurrentDatabase;
        SET @tablename = tablename;
        SET @columnname = columnname;
        SET @executeType = executeType;
        SET @executeStr = executeStr;
        SET @count = (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE table_schema=CurrentDatabase AND TABLE_NAME=@tablename AND COLUMN_NAME=@columnname);
        IF @executeType = 'add' AND @count = 0 THEN
            PREPARE stmt1 FROM @executeStr;
            EXECUTE stmt1;
        ELSEIF @executeType = 'alter' AND @count >0 THEN
            PREPARE stmt1 FROM @executeStr;
            EXECUTE stmt1;
        END IF;
    END

2、调用示例

修改”昵称”字段长度:

call p_aa_updatecolumn('table_1', 'name_nick', 'alter table table_1 modify name_nick varchar(260) null comment "昵称"', 'alter');
posted @ 2022-05-23 08:27  ayueC  阅读(1012)  评论(0)    收藏  举报