mysql表增加字段可重复执行

本文介绍了一种使用存储过程在MySQL中动态添加表字段的方法。通过定义存储过程add_table_columns,可以检查字段是否存在,若不存在则自动添加指定的字段及注释。此过程涉及SQL动态语句的构造与执行,适用于需要灵活修改数据库结构的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-- ----------------------------
-- 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','结算账户');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值