답변:
show procedure status
저장 프로 시저가 표시됩니다.
show create procedure MY_PROC
절차의 정의를 보여줍니다. 과
help show
show
명령에 사용 가능한 모든 옵션이 표시됩니다 .
현명한보기 절차
select name from mysql.proc
아래 코드는 모든 절차를 나열하는 데 사용되며 아래 코드는 절차 상태 표시와 동일한 결과를 제공합니다.
select * from mysql.proc
select db,name,type from mysql.proc where db<>'sys';
좀 더 많은 정보와 내장 된 시스템 kruft로 발전시켰다.
보다 구체적인 방법 :
SHOW PROCEDURE STATUS
WHERE Db = DATABASE() AND Type = 'PROCEDURE'
상술 한 바와 같이,
show procedure status;
실제로 절차 목록을 표시하지만 서버 전체 에서 모든 절차를 표시 합니다 .
단일 데이터베이스의 데이터베이스 만 보려면 다음을 시도하십시오.
SHOW PROCEDURE STATUS WHERE Db = 'databasename';
내가 선호하는 것은 다음과 같습니다.
이 스레드에서 다른 답변에서 함께 바느질, 나는 결국
select
name, type
from
mysql.proc
where
db = database()
order by
type, name;
... 다음과 같은 결과가 나타납니다.
mysql> select name, type from mysql.proc where db = database() order by type, name;
+------------------------------+-----------+
| name | type |
+------------------------------+-----------+
| get_oldest_to_scan | FUNCTION |
| get_language_prevalence | PROCEDURE |
| get_top_repos_by_user | PROCEDURE |
| get_user_language_prevalence | PROCEDURE |
+------------------------------+-----------+
4 rows in set (0.30 sec)
이것을 사용하십시오 :
SHOW PROCEDURE STATUS;
Praveenkumar_V의 게시물에 대한 변형 :
SELECT `name` FROM mysql.proc WHERE db = 'dbname' AND `type` = 'PROCEDURE';
SELECT `name` FROM mysql.proc WHERE db = 'dbname' AND `type` = 'FUNCTION';
.. 그리고 이것은 하우스 키핑 후 시간을 절약해야했기 때문에 :
SELECT CONCAT(
"GRANT EXECUTE ON PROCEDURE `"
,`name`
,"` TO username@'%'; -- "
,`comment`
)
FROM mysql.proc
WHERE db = 'dbname'
AND `type` = 'PROCEDURE';
SELECT CONCAT(
"GRANT EXECUTE ON FUNCTION `"
,`name`
,"` TO username@'%'; -- "
,`comment`
)
FROM mysql.proc
WHERE db = 'dbname'
AND `type` = 'FUNCTION';
현재 선택된 데이터베이스에 대한 저장 프로 시저를 나열하려면
SHOW PROCEDURE STATUS WHERE Db = DATABASE();
현재 선택된 데이터베이스를 기반으로 루틴을 나열합니다.
데이터베이스에서 함수를 나열하도록 업데이트 되었습니다.
select * from information_schema.ROUTINES where ROUTINE_SCHEMA="YOUR DATABASE NAME" and ROUTINE_TYPE="FUNCTION";
데이터베이스에 루틴 / 저장 프로 시저를 나열하기 위해
select * from information_schema.ROUTINES where ROUTINE_SCHEMA="YOUR DATABASE NAME" and ROUTINE_TYPE="PROCEDURE";
데이터베이스에 테이블을 나열하기 위해
select * from information_schema.TABLES WHERE TABLE_TYPE="BASE TABLE" AND TABLE_SCHEMA="YOUR DATABASE NAME";
데이터베이스의 뷰를 나열하기 위해
방법 1 :
select * from information_schema.TABLES WHERE TABLE_TYPE="VIEW" AND TABLE_SCHEMA="YOUR DATABASE NAME";
방법 2 :
select * from information_schema.VIEWS WHERE TABLE_SCHEMA="YOUR DATABASE NAME";
현재 데이터베이스의 프로 시저 목록을 가장 좋아하는 렌더링 : 이름, 매개 변수 목록, 주석
SELECT specific_name AS name, param_list AS params, `comment`
FROM mysql.proc
WHERE db = DATABASE()
AND type = 'PROCEDURE';
함수에 대한 리턴 추가 :
SELECT specific_name AS name, param_list AS params, `returns`, `comment`
FROM mysql.proc
WHERE db = DATABASE()
AND type = 'FUNCTION';
모든 데이터베이스에 대한 사용자 절차 및 기능을 나열하십시오 .
SELECT
`ROUTINE_SCHEMA` AS `database`
,`ROUTINE_TYPE` AS `type`
,`SPECIFIC_NAME` AS `name`
,`DTD_IDENTIFIER` AS `data_type`
FROM
`INFORMATION_SCHEMA`.`ROUTINES`
WHERE
`definer` LIKE
CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'))
ORDER BY
`database`
,`type`
,`name`
;
사용중인 데이터베이스에 대한 사용자 절차 및 기능을 나열하십시오 .
SELECT
`ROUTINE_SCHEMA` AS `database`
,`ROUTINE_TYPE` AS `type`
,`SPECIFIC_NAME` AS `name`
,`DTD_IDENTIFIER` AS `data_type`
FROM
`INFORMATION_SCHEMA`.`ROUTINES`
WHERE
`definer` LIKE
CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'))
AND
`ROUTINE_SCHEMA` = DATABASE()
ORDER BY
`type`
,`name`
;
object_name(@@procid)
MySql에서 SSMS에 있다고 생각 합니까?