Я пытаюсь присвоить «DATABASE ()», которая возвращает имя текущей базы данных, переменной «@mydb» и использовать ее для удаления этой базы данных.
SET @mydb = DATABASE(); DROP DATABASE @mydb;
И я получил это ошибка ER_PARSE_ERROR near @mydb
ER_PARSE_ERROR near @mydb
Как отметил П.Салмон, вы должны использовать Подготовленные заявления :
SET @mydb = DATABASE(); SET @sql = CONCAT('DROP DATABASE ', @mydb); PREPARE stmt1 FROM @sql; EXECUTE stmt1;