programing

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

sourcetip 2022. 10. 8. 16:22
반응형

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

저장 프로시저 또는 함수의 정의를 보기 위한 MySQL 명령어는 무엇입니까?sp_helptextMicrosoft SQL Server에 있습니까?

나는 그것을 알고 있습니다.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>;

database mysql에서 table proc를 사용할 수 있습니다.

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

select to 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>

테이블 설명도 내보내지만 데이터는 내보내지 않습니다.알 수 없거나 잊어버린 스키마를 탐색하는 데 적합합니다.;)

완벽해, 한번 해봐.

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

언급URL : https://stackoverflow.com/questions/1968773/view-stored-procedure-function-definition-in-mysql

반응형