В MySQL 8.0 подробности хранимой процедуры (подпрограммы) доступны через таблицу Подпрограммы в INFORMATION_SCHEMA
. Следующие пункты заслуживают внимания:
Таблица ROUTINES предоставляет информацию о сохраненных подпрограммах (сохранено
процедуры и хранимые функции). Таблица ROUTINES не включает
встроенные функции SQL или пользовательские функции (UDF).
Теперь для использования здесь необходимы следующие два столбца в таблице процедур:
ROUTINE_SCHEMA
- Имя схемы (базы данных), которой принадлежит подпрограмма.
ROUTINE_TYPE
- ПРОЦЕДУРА для хранимых процедур, ФУНКЦИЯ для хранимых функций.
При дальнейшем расследовании с использованием SHOW CREATE TABLE information_schema.routines
выясняется, что это TEMPORARY TABLE
Итак, чтобы удалить все хранимые процедуры (и не хранимые функции) из базы данных test
, мы можем использовать следующий запрос:
DELETE FROM information_schema.routines
WHERE routine_type = 'PROCEDURE' AND
routine_schema = 'test'