Как мне отобразить все UDF (определяемые пользователем функции) на сервере MySQL? (версия 5.0.x)
ОБНОВИТЬ Я не хочу отображать код всех UDF, я просто хочу указать имя каждой установленной UDF. Сорта как SHOW DATABASES
, но для UDF.
UDF хранятся в таблице FUNC базы данных mysql.
Попробуй это:
select * from mysql.func;
Все процедуры хранятся в базе данных mysql. Обычно я использую этот запрос, когда что-то ищу.
выберите db, имя, определитель, измененный из mysql.proc;
Согласно документам, похоже, вы не можете сделать это, если в сборке не включена отладка.
См .: (Эта страница предназначена для функций, а также для процедур)
http://dev.mysql.com/doc/refman/5.0/en/show-procedure-code.html
Если вы хотите создавать операторы (скажем, для восстановления из резервной копии или создания тех же UDF в другой системе), вы можете использовать это
select concat('create function`',`name`,'`returns ',if(`ret`=0,'string','integer'),' soname\'',`dl`,'\';')from mysql.func;
Должен вернуть что-то вроде
create function`preg_position`returns integer soname'lib_mysqludf_preg.so';
create function`preg_rlike`returns integer soname'lib_mysqludf_preg.so';
create function`preg_replace`returns string soname'lib_mysqludf_preg.so';
create function`lib_mysqludf_preg_info`returns string soname'lib_mysqludf_preg.so';
create function`preg_capture`returns string soname'lib_mysqludf_preg.so';
create function`preg_check`returns integer soname'lib_mysqludf_preg.so';
create function`unhtml`returns string soname'unhtml.so';