MySQL 判断和删除索引和表外键 —- Procedure Of Delete Index–DROP PROCEDURE IF EXISTS DEL_IDX;CREATE PROCEDURE DEL_IDX(IN P_TABLE_NAME varchar(200), IN P_IDX_NAME VARCHAR(200))BEGINDECLARE ST VARCHAR(250); SET @ST=CONCAT(‘ DROP INDEX ‘, P_I
MySQL 判断和删除索引和表外键
---- Procedure Of Delete Index--DROP PROCEDURE IF EXISTS DEL_IDX;CREATE PROCEDURE DEL_IDX(IN P_TABLE_NAME varchar(200), IN P_IDX_NAME VARCHAR(200))BEGINDECLARE ST VARCHAR(250); SET @ST=CONCAT(' DROP INDEX ', P_IDX_NAME, ' ON ', P_TABLE_NAME); SELECT count(*) INTO @CNT FROM information_schema.statistics WHERE table_name=<i>本文来源gaodai$ma#com搞$$代**码)网@</i>P_TABLE_NAME and index_name=P_IDX_NAME; IF @CNT >0 THEN PREPARE stmt FROM @ST; EXECUTE stmt; END IF;END;CALL DEL_IDX('T_NAME, 'IDX_NAME');DROP PROCEDURE IF EXISTS DEL_IDX;---- Procedure Of Delete FK--DROP PROCEDURE IF EXISTS DEL_FK;CREATE PROCEDURE DEL_FK(IN P_TABLE_NAME varchar(200), IN F_K_NAME VARCHAR(200))BEGINDECLARE ST VARCHAR(250); SET @ST=CONCAT(' ALTER TABLE ', P_TABLE_NAME, ' DROP FOREIGN KEY ', F_K_NAME); SELECT COUNT(*) INTO @CNT FROM information_schema.key_column_usage WHERE table_name=P_TABLE_NAME and constraint_name=F_K_NAME; IF @CNT >0 THEN PREPARE stmt FROM @ST; EXECUTE stmt; END IF;END;CALL DEL_FK('T_NAM, 'FK_NAME);DROP PROCEDURE IF EXISTS DEL_FK;
?