加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何为mysql制作DROP INDEX IF EXISTS?

发布时间:2020-12-13 16:05:45 所属栏目:PHP教程 来源:网络整理
导读:我想在 mysql中使用选项IF EXISTS进行DROP INDEX,但我发现没有任何东西可以使它工作. DROP INDEX IF EXISTS index_name ON table_name; 有人有任何暗示吗? 解决方法 我没有看到任何使用IF EXISTS直接进入DROP INDEX的方法. 作为一种解决方法,我编写了以下过
我想在 mysql中使用选项IF EXISTS进行DROP INDEX,但我发现没有任何东西可以使它工作.

DROP INDEX IF EXISTS index_name ON table_name;

有人有任何暗示吗?

解决方法

我没有看到任何使用IF EXISTS直接进入DROP INDEX的方法.
作为一种解决方法,我编写了以下过程,这对我有用.

CREATE PROCEDURE `DropIndexIfExists`(
    IN i_table_name VARCHAR(128),IN i_index_name VARCHAR(128)
    )
    BEGIN

    SET @tableName = i_table_name;
    SET @indexName = i_index_name;
    SET @indexExists = 0;

    SELECT 
        1
    INTO @indexExists FROM
        INFORMATION_SCHEMA.STATISTICS
    WHERE
        TABLE_NAME = @tableName
            AND INDEX_NAME = @indexName;

    SET @query = CONCAT
    (
    '
    DROP INDEX ',@indexName,' ON ',@tableName,'
    '
    );
    IF @indexExists THEN
        PREPARE stmt FROM @query;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;
    END IF;
    END

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读