Подтвердить что ты не робот

Просмотр определения хранимой процедуры/функции в MySQL

Что такое команда MySQL для просмотра определения хранимой процедуры или функции, аналогичной sp_helptext в Microsoft SQL Server?

Я знаю, что SHOW PROCEDURE STATUS отобразит список доступных процедур. Мне нужно увидеть одно определение процедуры.

4b9b3361

Ответ 1

SHOW CREATE PROCEDURE <name>

Возвращает текст ранее определенной хранимой процедуры, созданной с помощью инструкции CREATE PROCEDURE. Swap PROCEDURE для FUNCTION для сохраненной функции.

Ответ 2

Вы можете использовать это:

SELECT ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA = 'yourdb' AND ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_NAME = "procedurename";

Ответ 3

SHOW CREATE PROCEDURE proc_name;

возвращает определение proc_name

Ответ 4

Если вы хотите узнать список процедур, вы можете запустить следующую команду -

show procedure status;

Он предоставит вам список процедур и их определителей Затем вы можете запустить show create procedure <procedurename>;

Ответ 5

что-то вроде:

DELIMITER //

CREATE PROCEDURE alluser()
BEGIN
   SELECT *
   FROM users;
END //

DELIMITER ;

чем:

SHOW CREATE PROCEDURE alluser

дает результат:

'alluser', 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER', 'CREATE DEFINER=`root`@`localhost` PROCEDURE `alluser`()
BEGIN
   SELECT *
   FROM users;
END'

Ответ 6

Альтернативное быстрое и взломанное решение, если вы хотите получить обзор всех существующих в нем продуктов или столкнуться с проблемой получения заголовка процедуры, показанного программой SHOW CREATE PROCEDURE:

mysqldump --user=<user> -p --no-data --routines <database>

Он также экспортирует описания таблиц, но никаких данных. Хорошо работает для обнюхивания неизвестных или забытых схем...;)

Ответ 7

Отлично, попробуйте:

SELECT ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES
    WHERE ROUTINE_SCHEMA = 'yourdb' AND ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_NAME = "procedurename";