遇到的问题:分库分表情况下可能好几百张表,可以使用存储过程来新建索引。实现方式如下

 1 /*新建存储过程:给库.表的字段添加索引*/
 2 delimiter $$
 3      /*创建带参存储过程 dbName库名称;tablePrefixName表名称前缀;minTableNumber表最小序号;maxTableNumber表最大序号;indexName索引名称;indexValue索引列*/
 4      create PROCEDURE add_index_while_procure(IN dbPrefixName VARCHAR(50),IN tablePrefixName VARCHAR(50),IN minTableNumber INT,IN maxTableNumber INT,IN indexName varchar(50),IN indexValue varchar(200))
 5      BEGIN
 6         declare table_name_number int;
 7                
 8             set table_name_number=minTableNumber;
 9             while(table_name_number<=maxTableNumber) DO                                    
10                  /*添加索引语句*/           
11                  set @STMT :=CONCAT("alter table ",dbPrefixName,".",tablePrefixName,table_name_number," ADD index " ,indexName,"  ",indexValue,";");
12                  /*输出执行语句*/   
13                  select @STMT;
14                  prepare STMT FROM @STMT;
15                  EXECUTE STMT;   
16                        
17                  set table_name_number=table_name_number+1;
18               end while;
19      END 
20 $$
21 delimiter;
新建存储过程(添加索引)

相关文章: