{{{ 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; }}}