MySQL에서 저장 프로시저를 보는 방법을 소개하는 기사

PHPz
풀어 주다: 2023-04-19 15:17:21
원래의
712명이 탐색했습니다.

MySQL은 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 다른 데이터베이스 관리 시스템과 마찬가지로 MySQL도 저장 프로시저 개념을 지원합니다. 저장 프로시저를 통해 공통 작업 및 비즈니스 논리 코드를 모듈로 캡슐화하고 필요할 때 직접 호출할 수 있습니다.

그러나 실제 개발에서는 비즈니스 규모가 지속적으로 확장됨에 따라 저장 프로시저의 수가 증가하게 되며, 이러한 저장 프로시저를 어떻게 효율적으로 관리하고 빠르게 찾을 수 있는지가 특히 중요해집니다. 이 기사에서는 MySQL에서 저장 프로시저를 보는 방법을 소개하고 도움이 되기를 바랍니다.

1. 저장 프로시저를 보려면 SHOW PROCEDURE STATUS 명령을 사용하세요.

SHOW PROCEDURE STATUS 명령을 사용하면 이름, 생성 등 MySQL 데이터베이스의 저장 프로시저에 대한 관련 정보를 볼 수 있습니다. 시간, 저장 프로시저의 수정 시간, 상태 등입니다. SHOW PROCEDURE STATUS 命令,可以查看 MySQL 数据库中存储过程的相关信息,包括存储过程的名称、创建时间、修改时间、状态等。

Show PROCEDURE STATUS [LIKE 'pattern' | WHERE expr]
로그인 후 복사

其中,pattern 表示要查询的存储过程名称的模式,expr 表示一个 SQL 表达式,只有在表达式结果为真时,查询结果才会被返回。如果不指定任何参数,则会返回所有存储过程的信息。

以下是一些例子:

查询所有存储过程

SHOW PROCEDURE STATUS;
로그인 후 복사

查询名称以 p_ 开始的存储过程

SHOW PROCEDURE STATUS LIKE 'p_%';
로그인 후 복사

查询状态为 {Create | Alter | Drop} 的存储过程

SHOW PROCEDURE STATUS WHERE `status` IN ('Create', 'Alter', 'Drop');
로그인 후 복사

2. 使用 SHOW CREATE PROCEDURE 命令查看存储过程定义

要查看存储过程的具体定义,可以使用 SHOW CREATE PROCEDURE 命令,将会返回一个包含存储过程定义的 SQL 语句。

SHOW CREATE PROCEDURE proc_name;
로그인 후 복사

其中,proc_name 表示要查询的存储过程名称。

下面是一个例子:

SHOW CREATE PROCEDURE `add_user`;

-- 结果
+-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Procedure | Create Procedure                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
+-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| add_user  | CREATE DEFINER=`root`@`localhost` PROCEDURE `add_user`(IN p_name VARCHAR(32), IN p_age INT, IN p_address VARCHAR(64)) BEGIN INSERT INTO `user`(`name`, `age`, `address`) VALUES (p_name, p_age, p_address); END |
+-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
로그인 후 복사

通过 SHOW CREATE PROCEDURE 命令,即使不知道存储过程的定义,也可以快速地查看存储过程的具体实现。

3. 使用 INFORMATION_SCHEMA 查看存储过程

INFORMATION_SCHEMA 是 MySQL 支持的一个元数据数据库,其中包含了大量关于数据库结构和状态的信息。在 INFORMATION_SCHEMA.Routines 表中,可以查询 MySQL 数据库所有的存储过程。

SELECT `ROUTINE_NAME`, `ROUTINE_DEFINITION`, `CREATED`, `LAST_ALTERED`
FROM `INFORMATION_SCHEMA`.`ROUTINES`
WHERE `ROUTINE_TYPE` = 'PROCEDURE'
  AND `SPECIFIC_SCHEMA` = 'your_db_name';
로그인 후 복사

其中,ROUTINE_NAME 表示存储过程名称,ROUTINE_DEFINITION 表示存储过程定义,CREATED 表示创建时间,LAST_ALTERED 表示修改时间。

需要注意的是,为了提高查询效率,查询语句中应该指定具体的数据库名称。如果要查询所有数据库,可以将 SPECIFIC_SCHEMA 字段改为 IS NOT NULL

总结

通过以上三种方法,可以在 MySQL 中方便地查看和管理存储过程。SHOW PROCEDURE STATUS 命令提供了基础的存储过程信息,SHOW CREATE PROCEDURE 命令则提供了具体的存储过程定义。而使用 INFORMATION_SCHEMArrreee

그 중 pattern은 쿼리할 저장 프로시저 이름의 패턴을 나타내고 expr은 SQL 표현식을 나타냅니다. 쿼리 결과는 표현식 결과일 때만 나타납니다. 사실입니다. 매개변수를 지정하지 않으면 모든 저장 프로시저에 대한 정보가 반환됩니다.

다음은 몇 가지 예입니다. 🎜

모든 저장 프로시저 쿼리

rrreee

이름이 p_

rrreee

로 시작하는 저장 프로시저 쿼리

쿼리 상태 {Create | Alter | Drop}의 저장 프로시저

rrreee🎜2입니다. 저장 프로시저 정의를 보려면 SHOW CREATE PROCEDURE 명령을 사용하세요.🎜🎜저장 프로시저의 구체적인 정의를 보려면 , SHOW CREATE PROCEDURE 명령을 사용하면 저장 프로시저 정의가 포함된 SQL 문을 반환합니다. 🎜rrreee🎜이 중 proc_name은 쿼리할 저장 프로시저의 이름을 나타냅니다. 🎜🎜다음은 예시입니다. 🎜rrreee🎜SHOW CREATE PROCEDURE 명령을 사용하면 저장 프로시저의 정의를 몰라도 저장 프로시저의 구체적인 구현을 빠르게 볼 수 있습니다. 🎜🎜3. INFORMATION_SCHEMA를 사용하여 저장 프로시저 보기 🎜🎜INFORMATION_SCHEMA는 MySQL에서 지원하는 메타데이터 데이터베이스로, 데이터베이스의 구조와 상태에 대한 많은 양의 정보를 포함합니다. INFORMATION_SCHEMA.Routines 테이블에서는 MySQL 데이터베이스의 모든 저장 프로시저를 쿼리할 수 있습니다. 🎜rrreee🎜이 중 ROUTINE_NAME은 저장 프로시저 이름, ROUTINE_DEFINITION은 저장 프로시저 정의, CREATED는 생성 시간, LAST_ALTERED는 수정 시간을 나타냅니다. 🎜🎜쿼리 효율성을 높이려면 쿼리문에 특정 데이터베이스 이름을 지정해야 한다는 점에 유의하세요. 모든 데이터베이스를 쿼리하려면 SPECIFIC_SCHEMA 필드를 IS NOT NULL로 변경하면 됩니다. 🎜🎜요약🎜🎜위의 세 가지 방법을 통해 MySQL에서 저장 프로시저를 쉽게 조회하고 관리할 수 있습니다. SHOW PROCEDURE STATUS 명령은 기본 저장 프로시저 정보를 제공하고 SHOW CREATE PROCEDURE 명령은 특정 저장 프로시저 정의를 제공합니다. INFORMATION_SCHEMA를 사용하면 모든 MySQL 데이터베이스의 저장 프로시저를 쿼리할 수 있습니다. 🎜🎜실제 개발에서는 저장 프로시저의 정의와 정보를 확인하는 것 외에도 저장 프로시저의 호출 방법, 매개변수 전송 등을 숙지해야 저장 프로시저를 빠르게 활용하여 비즈니스 로직을 완성할 수 있습니다. 필요할 때. 🎜

위 내용은 MySQL에서 저장 프로시저를 보는 방법을 소개하는 기사의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!