Ошибка MySQL 1142 Команда DROP отклонена

Я не могу выбросить стол из процедуры. Это процедура, в которой он дает мне ошибку.

CREATE PROCEDURE `procDropAllTables`()
BEGIN
    DECLARE table_name VARCHAR(255);
    DECLARE end_of_tables INT DEFAULT 0;

    DECLARE cur CURSOR FOR
        SELECT t.table_name 
        FROM information_schema.tables t 
        WHERE t.table_schema = DATABASE() AND t.table_type='BASE TABLE';
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET end_of_tables = 1;

    SET FOREIGN_KEY_CHECKS = 0;
    OPEN cur;

    tables_loop: LOOP
        FETCH cur INTO table_name;

        IF end_of_tables = 2 THEN
            LEAVE tables_loop;
        END IF;

        SET @s = CONCAT('DROP TABLE IF EXISTS ' , table_name);
        PREPARE stmt FROM @s;
        EXECUTE stmt;

    END LOOP;

    CLOSE cur;
    SET FOREIGN_KEY_CHECKS = 1;
END

Я могу отбросить удаленные таблицы, если я делаю это вручную, так что это не проблема привилегий пользователя

0 ответов

Другие вопросы по тегам