存储过程:判断索引不存在时添加,支持入参和日志返回
调用方法:
CALL add_normal_index_if_not_exists('要添加索引的表','要添加索引的字段',@log);
select @log as '增加索引执行结果';
执行 效果
成功:
失败:
存储过程:
-- 存储过程:判断索引不存在时添加
DROP PROCEDURE IF EXISTS add_normal_index_if_not_exists;
DELIMITER $
CREATE PROCEDURE add_normal_index_if_not_exists(
In target_table_name VARCHAR(100),
In target_column_name varchar(100),
OUT log varchar(100)
)
BEGIN
DECLARE target_database VARCHAR(100);
SELECT DATABASE() INTO target_database;
IF NOT EXISTS (
SELECT * FROM information_schema.statistics
WHERE lower(table_schema) = lower(target_database)
AND lower(table_name) = lower(target_table_name)
AND lower(COLUMN_NAME) = lower(target_column_name)
)
THEN
set log = concat('create index idx_',target_column_name,' on ',target_table_name,'(',target_column_name,')' );
set @statement = log;
PREPARE STMT FROM @statement;
EXECUTE STMT;
else
set log = concat(target_database,'.',target_table_name,'已存在字段',target_column_name,'的索引,不再添加');
END IF;
END;
$
DELIMITER ;
参考链接:
https://blog.youkuaiyun.com/TurboAnho/article/details/119808724