[mysql] MySQL에서 저장 프로 시저 / 함수 정의보기

sp_helptextMicrosoft SQL Server 와 유사한 저장 프로 시저 또는 함수의 정의를 보는 MySQL 명령은 무엇입니까 ?

SHOW PROCEDURE STATUS사용 가능한 절차 목록이 표시 된다는 것을 알고 있습니다. 단일 절차의 정의를 확인해야합니다.



답변

SHOW CREATE PROCEDURE <name>

CREATE PROCEDURE문을 사용하여 만든 이전에 정의 된 저장 프로 시저의 텍스트를 반환합니다 . 스왑 PROCEDURE에 대한 FUNCTION저장 기능.


답변

이것을 사용할 수 있습니다 :

SELECT ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA = 'yourdb' AND ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_NAME = "procedurename";


답변

SHOW CREATE PROCEDURE proc_name;

정의를 반환합니다. proc_name


답변

절차 목록을 알고 싶다면 다음 명령을 실행할 수 있습니다.

show procedure status;

프로 시저 및 해당 정의 자 목록을 제공합니다. 그런 다음 show create procedure <procedurename>;


답변

mysql 데이터베이스에서 table proc 을 사용할 수 있습니다 .

mysql> SELECT body FROM mysql.proc
WHERE db = 'yourdb' AND name = 'procedurename' ;

mysql.proc에 대한 선택 권한이 있어야합니다 .

mysql> GRANT SELECT ON mysql.proc TO 'youruser'@'yourhost' IDENTIFIED BY 'yourpass' ;


답변

같은 것 :

DELIMITER //

CREATE PROCEDURE alluser()
BEGIN
   SELECT *
   FROM users;
END //

DELIMITER ;

보다:

SHOW CREATE PROCEDURE alluser

결과를 제공합니다.

'alluser', 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER', 'CREATE DEFINER=`root`@`localhost` PROCEDURE `alluser`()
BEGIN
   SELECT *
   FROM users;
END'


답변

모든 절차에 대한 개요를 얻거나 SHOW CREATE PROCEDURE에 표시된 절차 헤더 만 가져 오는 문제에 직면 한 경우 신속하고 해킹 된 대안 솔루션 :

mysqldump --user=<user> -p --no-data --routines <database>

테이블 설명도 내보내지만 데이터는 내 보내지 않습니다. 알 수 없거나 잊혀진 스키마를 스니핑하는 데 적합합니다 …;)