MYSQL存储过程:判断索引不存在时添加,入参和日志返回

存储过程:判断索引不存在时添加,支持入参和日志返回
调用方法:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值