wiki:Script1

Version 1 (modified by 222004, 3 weeks ago) ( diff )

--

SET FOREIGN_KEY_CHECKS = 0;

DROP PROCEDURE IF EXISTS drop_all_indexes;

DELIMITER //
CREATE PROCEDURE drop_all_indexes()
BEGIN
    DECLARE done      INT DEFAULT 0;
    DECLARE tbl_name  VARCHAR(100);
    DECLARE idx_name  VARCHAR(100);

    DECLARE cur CURSOR FOR
        SELECT DISTINCT TABLE_NAME, INDEX_NAME
        FROM information_schema.STATISTICS
        WHERE TABLE_SCHEMA = 'airportdb'
          AND INDEX_NAME != 'PRIMARY'
        ORDER BY TABLE_NAME, INDEX_NAME;

    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;

    OPEN cur;
    read_loop: LOOP
        FETCH cur INTO tbl_name, idx_name;
        IF done THEN LEAVE read_loop; END IF;

        SET @s = CONCAT('DROP INDEX `', idx_name, '` ON `airportdb`.`', tbl_name, '`');
        PREPARE stmt FROM @s;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;

        SELECT CONCAT('Избришан: ', tbl_name, ' -> ', idx_name) AS status;
    END LOOP;
    CLOSE cur;
END //
DELIMITER ;

CALL drop_all_indexes();

DROP PROCEDURE IF EXISTS drop_all_indexes;

SET FOREIGN_KEY_CHECKS = 1;

SELECT 
    TABLE_NAME,
    INDEX_NAME,
    GROUP_CONCAT(COLUMN_NAME ORDER BY SEQ_IN_INDEX) AS koloni
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = 'airportdb'
GROUP BY TABLE_NAME, INDEX_NAME
ORDER BY TABLE_NAME, INDEX_NAME;

Note: See TracWiki for help on using the wiki.