Что такое SQL, чтобы перечислять параметры хранимого процесса MySQL? В таблице information_schema.routines
хранятся имена хранимых процедур, но, похоже, не существует стандартного места, где хранятся параметры.Как указать параметры хранимой процедуры mysql
ответ
Более поздние версии MySQL (5.5.3 and above) введены information_schema.parameters объект, который должен предоставить вам необходимую информацию;
SELECT *
FROM information_schema.parameters
WHERE SPECIFIC_NAME = 'your_procedure';
Более ранние версии MySql полагаются на доступ к таблице mysql.proc; столбец «param_list» имеет всю информацию о параметрах в там для процедуры с названием интересующей Вас информация решительно ненормализованная, хотя, как он хранится в виде разделенных запятыми строки:.
SELECT param_list FROM mysql.proc WHERE db='your_database' AND name='your_procedure';
Дает:
IN param1 VARCHAR(32), IN param2 int, ...
Для этого требуется дополнительная работа для представления в формате для презентации; хотя функция string.split, по крайней мере, могла бы ее убрать.
show create procedure
show create function
? эти входящие вызовы требуют доступа к mysql.proc
таблице, где вы должны смотреть на и body
поля имеет longblob
типа там select cast(param_list as char) from mysql.proc where name='' and type='PROCEDURE'
Я написал процедуру, которая возвращает список параметров в таблице. Это может быть полезно кому-то.
CREATE PROCEDURE Micropsitta.'getParams'(parname varchar(255))
BEGIN
set @wyraz=(select cast(param_list as char)
from mysql.proc
where type='PROCEDURE'
and name COLLATE utf8_polish_ci = parname COLLATE utf8_polish_ci);
drop TEMPORARY table if exists tab;
CREATE TEMPORARY TABLE tab (substrings varchar(255)) ENGINE=MEMORY;
IF ((@wyraz) <> '')
THEN
set @firstchar=1;
set @spacje=1;
set @lenghtWyraz=(select CHAR_LENGTH(@wyraz));
set @lenght=1;
while @lenght < @lenghtWyraz
DO
set @lenght=(select CHAR_LENGTH(SUBSTRING_INDEX(@wyraz,' ',@spacje)));
set @sub=(select SUBSTRING(@wyraz,@firstchar,@[email protected]+1));
set @firstchar=(select CHAR_LENGTH(SUBSTRING_INDEX(@wyraz,',',@spacje)))+2;
insert into tab (substrings)
select @sub;
set @[email protected]+1;
end while;
END IF;
select substrings as params from tab where substrings <>'';
END;
- 1. Параметры хранимой процедуры MySQL
- 2. Параметры хранимой процедуры Mysql Заказ
- 3. Параметры хранимой процедуры MySql - ошибка синтаксиса
- 4. параметры запроса SQL внутри хранимой процедуры MySQL
- 5. хранимой процедуры, пустые параметры
- 6. Получить параметры параметров хранимой процедуры
- 7. Параметры хранимой процедуры - иногда NULL
- 8. Параметры хранимой процедуры SQL Server
- 9. Связующие параметры для хранимой процедуры
- 10. Не добавлять параметры хранимой процедуры
- 11. параметры хранимой процедуры в php
- 12. C# sqlserver параметры хранимой процедуры
- 13. Переменная хранимой процедуры MySQL
- 14. Параметры вывода хранимой процедуры в SQL Server
- 15. Консолидация хранимой процедуры mysql
- 16. хранимой процедуры, если MySQL
- 17. Создание хранимой процедуры - MySQL
- 18. Синтаксис хранимой процедуры MySQL
- 19. синтаксис хранимой процедуры mysql
- 20. Ускорение хранимой процедуры MySQL
- 21. Вызов хранимой процедуры, игнорирующей выходные параметры
- 22. как объединить различные параметры хранимой процедуры
- 23. Как получить параметры параметров хранимой процедуры?
- 24. как послать правильные параметры хранимой процедуры
- 25. Как узнать параметры хранимой процедуры в PHP?
- 26. MySQL Как выполнить цикл хранимой процедуры?
- 27. Вызов хранимой процедуры из хранимой процедуры в MySQL
- 28. Время хранимой процедуры хранимой процедуры MySQL при вызове с C#
- 29. Не принимать параметры для хранимой процедуры mysql C#
- 30. Условный оператор хранимой процедуры MySQL
См. Http://stackoverflow.com/questions/733349/list-of-stored-procedures-functions-mysql-command-line. Не уверен, что вы можете изолировать параметры без основного текста. – kaj
Какая версия вы используете? В более новых версиях есть параметры information_schema.parameters. В более старых версиях посмотрите на параметр mysql.proc - column paramlist (хотя они не в отличном формате!) – dash
@ dash bang on, не знаю, как я пропустил эту таблицу. Я использую 5.5.9. Если вы поместите это как ответ, я приму это. – icc97