Показать код процедуры/функции в MySql

Есть ли какие-либо варианты для просмотра кода хранимой процедуры/функции в MySql, как например, «имя процедуры sp_helptext» в sql?


person User129    schedule 24.08.2012    source источник
comment
возможный дубликат Просмотреть определение хранимой процедуры/функции в MySQL   -  person David Harkness    schedule 07.07.2014


Ответы (5)


попробуйте "SHOW CREATE PROCEDURE имя_процедуры"

person codelization    schedule 24.08.2012
comment
1. SHOW с CREATE обычно доступен (просто SHOW доступен только в режиме отладки).......... 2. Это показывает весь код CREATE функции/процедуры. - person jave.web; 08.04.2014
comment
Также обратите внимание, что, конечно, вы можете поменять ключевое слово procedure на function, чтобы получить код создания функции::::: SHOW CREATE FUNCTION function_name - person jave.web; 08.04.2014

Да,

SELECT ROUTINE_DEFINITION FROM information_schema.ROUTINES WHERE SPECIFIC_NAME='procedurename'
person Christoph    schedule 18.10.2013
comment
Это показывает, что СОДЕРЖИТ функция/процедура - что должно быть выполнено, а не весь код создания функции/процедуры. - person jave.web; 08.04.2014

Вы можете получить информацию из таблицы INFORMATION_SCHEMA.ROUTINES.

person Maxim Krizhanovsky    schedule 24.08.2012

Перейти к рабочему столу mySQL

  • Щелкните правой кнопкой мыши процедуру и выберите ИЗМЕНИТЬ. (Это откроет для вас определение процедуры (самый простой способ).

ИЛИ

  • Вы также можете использовать команду SHOW CREATE PROCEDURE proc_name;
person Raman Verma    schedule 20.12.2018

Я немного поэкспериментировал, и я думаю, что один из следующих двух работает лучше всего.

Чтобы перечислить все (parameters, collating и т. д.), используйте это.

 SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA in (SELECT DATABASE()) AND ROUTINE_NAME='ProcedureName';

Чтобы перечислить только код, используйте это.

SELECT ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA in (SELECT DATABASE()) AND ROUTINE_NAME='ProcedureName';

В обоих случаях требуется вложенный выбор, чтобы ограничить результат текущей базой данных, поскольку INFORMATION_SCHEMA, будучи системной базой данных, содержит сведения о каждой базе данных, установленной в экземпляре.

person David A. Gray    schedule 20.09.2018