[mysql] MySQL에서 저장 프로 시저 / 함수 정의보기
sp_helptext
Microsoft 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>
테이블 설명도 내보내지만 데이터는 내 보내지 않습니다. 알 수 없거나 잊혀진 스키마를 스니핑하는 데 적합합니다 …;)