通过调用存储过程来执行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');
既要仰望星空,又要脚踏实地