2009-10-17 2 views

ответ

3

Вы можете получить много информации, включая имя, от INFORMATION_SCHEMA.ROUTINES. See the MySQL Manual for details.

Информация о параметрах будет содержаться в INFORMATION_SCHEMA.PARAMETERS таблице, но эта таблица не доступна в MySQL, так что я не уверен, что вы можете получить эту информацию от INFORMATION_SCHEMA.

Если вам нужен список аргументов, вы можете выбрать имена процедур от INFORMATION_SCHEMA.ROUTINES, а затем получить операторы CREATE PROCEDURE для каждого из них, используя SHOW CREATE PROCEDURE. Если вам просто нужны аргументы и типы, вы должны иметь возможность анализировать их без особых проблем.

+0

INFORMATION_SCHEMA.PARAMETERS, похоже, не существует ..? – Ropstah

+0

Нет. Это _was_ в MySQL 6, но он никогда не был обращен к MySQL 5. –

+0

grrrr, так что никак нельзя генерировать классы хранимых процедур из базы данных? – Ropstah

0

Я считаю, что что-то вроде того, что вы ищете, возможно с помощью встроенной в MySQL программы резервного копирования: mysqldump. Дайте это попробовать:

mysqldump --routines --triggers --nodata --skip-opt YOURDB 

Подробности: Быстрый взгляд на documentation (MySQL 5.4) показывает, вы определенно хотите, чтобы запустить его с опцией --routines, а также, вероятно, --triggers. Я предполагаю, что вы захотите пропустить большую часть данных на этом дампе, просто посмотрите на процедуры, и в этом случае вам могут понадобиться опции --nodata --skip-opt и, возможно, некоторые другие параметры, которые я еще не определил. Ознакомьтесь с документацией для своей версии для любых других параметров, которые вы хотите. Также обратите внимание, что вы можете указать только некоторые из таблиц в БД, добавив их имена в конец.

+0

Спасибо за то, что подумал, я думаю, что решений Джеймса достаточно, но я обязательно посмотрю на это! – Ropstah