1. 程式人生 > >踩坑經歷(四)建立索引儲存過程

踩坑經歷(四)建立索引儲存過程

需求:存在刪除索引並且建立索引

儲存過程

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)' 
);