• 存储过程--添加索引、删除索引


    /*存在则删除存储过程*/
    drop procedure if EXISTS add_index_while_procure;
    /*查看存储过程*/
    show procedure status;
    show create procedure add_index_while_procure;

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

    /*调用存储过程 所有子表及主表
    ALTER TABLE manager.tableName ADD INDEX idx_station_time (STATION_CODE, TIME) USING BTREE ;
    */
    call add_index_while_procure("manager","tableName_",1906,1912,"idx_code_time","(CODE, TIME)");

    ---------------------------

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

    /*调用存储过程 所有子表及主表
    ALTER TABLE manager.tableName DROP INDEX idx_station_time;
    */
    call drop_index_while_procure("manager","tableName_",1906,1912,"idx_station_time");

     参考:

    https://blog.csdn.net/qq_23132561/article/details/100888454

  • 相关阅读:
    (OK)(OK) running two Android-x86 in VirtualBox, they connect to NS3(MANETs) via "ethernet bridge"
    (OK) running two Android-x86 in VirtualBox, they connect to "ethernet bridge"
    (OK) virtualbox — VBoxManage internalcommands — with UUID already exists
    (OK) netcat transfer file to android from fedora23
    Setting VirtualBox to use it's built-in VNC server (ver. >= 4.2 I think)
    (OK) Android 6.0 (Marshmallow) Install apk
    netcat——Useful netcat examples on Linux
    Android下pm 命令详解
    (OK) Ubuntu 15.10: KVM vs. Xen vs. VirtualBox Virtualization Performance
    Virtualization solutions on Linux systems
  • 原文地址:https://www.cnblogs.com/zt007/p/14962292.html
Copyright © 2020-2023  润新知