我们库里有几百个同名但后缀不一样的表,就比如table_1、table_2、...table_n,现在想删除这些表中同一个字段如name,因此就想到了存储过程,具体实现如下:
CREATE DEFINER=`root`@`localhost` PROCEDURE `dropmobile`()
BEGIN
DECLARE i int DEFAULT 100; #定义变量
DECLARE n VARCHAR(100) ;
REPEAT
set n=concat("table_",i); #拼接表名
set @sql = CONCAT('alter table ',n,' drop COLUMN name'); #sql语句
PREPARE statement FROM @sql;
EXECUTE statement;
set i=i+1;
#SELECT n; #展示表名
UNTIL i>511 END REPEAT;
END
这样就ok了~