踩坑经历(四)创建索引存储过程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lwl2014100338/article/details/83411149
需求:存在删除索引并且创建索引

存储过程

DROP PROCEDURE 
IF EXISTS add_Index; 
delimiter // 
CREATE PROCEDURE add_Index ( 
    IN p_dbname VARCHAR (200), 
    IN p_tablename VARCHAR (200), 
    IN p_idxname VARCHAR (200), 
    IN p_index VARCHAR (200) 
) 
BEGIN 
    DECLARE 
        str VARCHAR (250); 
    
SET @str = concat( 
    ' ALTER TABLE ', 
    p_tablename, 
    ' ADD INDEX ', 
    p_index 
); 
    
SELECT 
    count(*) INTO @cnt 
FROM 
    information_schema.statistics 
WHERE 
    TABLE_SCHEMA = p_dbname 
AND table_name = p_tablename 
AND index_name = p_idxname; 
    
IF @cnt <= 0 THEN 
    PREPARE stmt FROM   @str; 
  EXECUTE stmt; 
END 
IF; 
    
END; 
// 
delimiter ; 


调用存储过程创建索引

    
/* 为monitorsys的Bond_Org_Manage_Pro表创建索引idx_mid
 *   
 * */ 
CALL add_Index ( 
    'monitorsys', 
    'Bond_Org_Manage_Pro', 
    'idx_mid', 
    'idx_mid(manageorgid)' 
);

猜你喜欢

转载自blog.csdn.net/lwl2014100338/article/details/83411149