mysql 批量操作存储过程

批量为当月31张表分别增加一列字段

table01,table02…table31

DROP PROCEDURE IF EXISTS test_update;
DELIMITER$$
CREATE PROCEDURE test_update () 
BEGIN
		-- 表前缀
		DECLARE table_name_idx VARCHAR(40) DEFAULT 'table';
		-- 循环变量
		DECLARE i INT DEFAULT 1;
		-- 拼接后的表名
		DECLARE table_name VARCHAR(40) DEFAULT '';
		-- ex: table01,table02......table31
		WHILE	i < 32 DO
			IF i <10 then
			  set table_name = CONCAT(table_name_idx,"0",i);
			ELSE
			  set table_name = CONCAT(table_name_idx,i);
			END IF;
			
			-- 有些mysql服务器不支持变量名作为表名需要预处理
			-- set @sqlStr=CONCAT('alter table ',table_name,' add new_column  char(40) NOT NULL COMMENT '新增列' after `column`; ');
			-- PREPARE stmt from @sqlStr;
			-- EXECUTE stmt;
			alter table table_name add new_column  char(40) NOT NULL COMMENT '新增列' after `column`;
			
			SET i = i + 1;
		END WHILE;
	COMMIT;

END$$
	
CALL test_update ();

DROP PROCEDURE IF EXISTS test_update;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值