-- 如果存在就删除存储过程
DROP PROCEDURE IF EXISTS Pro_repaymethod;
-- 创建存储过程
DELIMITER $$
-- 新增列
CREATE PROCEDURE Pro_repaymethod(TableName VARCHAR(50),ColumnName VARCHAR(50),SqlStr VARCHAR(4000))
BEGIN
DECLARE Rows1 INT;
SET Rows1=0;
-- 判断是否已经存在该字段
SELECT COUNT(*) INTO Rows1 FROM INFORMATION_SCHEMA.Columns
WHERE table_schema= DATABASE() AND table_name=TableName AND column_name=ColumnName;
-- 如果不存在该字段则新增列
IF (Rows1<=0) THEN
SET SqlStr := CONCAT( 'ALTER TABLE ',TableName,' ADD COLUMN ',ColumnName,' ',SqlStr);
ELSE SET SqlStr :='';
END IF;
-- 执行新增字段命令
IF (SqlStr<>'') THEN
SET @SQL1 = SqlStr;
PREPARE stmt1 FROM @SQL1;
EXECUTE stmt1;
END IF;
END $$
DELIMITER ;
-- 执行存储过程
-- CALL Pro_ColumnWork ('表名','字段名','字段类型');
-- 例子
CALL Pro_repaymethod ('LPReturnLoan','repaymethod',"varchar(1) comment '还款方式'");
-- 添加注释
alter table 表名 MODIFY 字段名 字段类型 comment '注释';
-- 例子
alter table T_USER MODIFY NAME varchar(80) comment '姓名';