-- ----------------------------
-- Procedure structure for add_table_columns
-- ----------------------------
DROP PROCEDURE IF EXISTS `add_table_columns`;
DELIMITER ;;
CREATE PROCEDURE `add_table_columns`(in tableName varchar(100),in columnName varchar(100),in columnDsec varchar(100))
BEGIN
DECLARE i int;
select COUNT(*)
INTO i
from information_schema.columns where table_name = tableName and COLUMN_NAME = columnName ;
IF i < 1 THEN
set @SqlCmd = ' ALTER TABLE ';
set @SqlCmd = concat(@SqlCmd, tableName);
set @SqlCmd = concat(@SqlCmd, ' ADD COLUMN ');
set @SqlCmd = concat(@SqlCmd, columnName);
set @SqlCmd = concat(@SqlCmd, " varchar(100) NULL COMMENT '");
set @SqlCmd = concat(@SqlCmd, columnDsec);
set @SqlCmd = concat(@SqlCmd, "' ");
PREPARE stmt FROM @SqlCmd;
EXECUTE stmt;
END IF;
END
;;
DELIMITER ;
call add_table_columns('ub_broker','settle_account','结算账户');
call add_table_columns('broker_commission_detail','settle_account','结算账户');
call add_table_columns('broker_commission_detail_history','settle_account','结算账户');
本文介绍了一种使用存储过程在MySQL中动态添加表字段的方法。通过定义存储过程add_table_columns,可以检查字段是否存在,若不存在则自动添加指定的字段及注释。此过程涉及SQL动态语句的构造与执行,适用于需要灵活修改数据库结构的场景。
929

被折叠的 条评论
为什么被折叠?



