mysql 存储过程,给分表批量添加字段及注释

DROP PROCEDURE
IF EXISTS hanshuming;

delimiter $$


CREATE PROCEDURE hanshuming ()
BEGIN

DECLARE _SQL VARCHAR (8000) CHARSET utf8 ;
DECLARE i INT ;
SET i = 0 ;
WHILE i < 128 DO

IF i < 10 THEN

SET _SQL = CONCAT(
	'ALTER TABLE table_nam_00',
	i,
	' ADD column_name BIGINT (20) NOT NULL comment "快照id";'
) ;
ELSEIF i < 100 THEN

SET _SQL = CONCAT(
	'ALTER TABLE table_name_0',
	i,
	' ADD column_name BIGINT (20) NOT NULL comment "注释";'
) ;
ELSE

SET _SQL = CONCAT(
	'ALTER TABLE table_name_',
	i,
	' ADD column_name BIGINT (20) NOT NULL comment "注释";'
) ;
END
IF ;
SET i = i + 1 ;
SET @_SQL = _SQL ; 
insert into sql_table values(_SQL); --  记录sql语句
PREPARE statm
FROM
	@_SQL ; EXECUTE statm ;
END
WHILE ; END$$

delimiter ; 


CALL hanshuming ();



猜你喜欢

转载自blog.csdn.net/qq779446849/article/details/80651096