일반 컴퓨팅 언어의 맥락에서 저장 프로시저는 데이터베이스에 저장된 서브프로그램과 같은 서브루틴으로 정의될 수 있습니다. MySQL 컨텍스트에서 데이터베이스 카탈로그 내부에 저장된 선언적 SQL 문의 세그먼트입니다. MySQL에서 저장 프로시저를 작성하기 전에 MySQL 5에서 저장 프로시저를 도입하기 때문에 버전을 확인해야 합니다. 다음은 저장 프로시저를 만드는 구문입니다. -
구문
CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body proc_parameter: [ IN | OUT | INOUT ] param_name type type: Any valid MySQL data type characteristic: COMMENT 'string' | LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } routine_body: Valid SQL routine statement
예시
다음은 'student_info' 테이블에서 다음 데이터가 있는 모든 레코드를 가져오는 간단한 절차를 만든 예입니다.
mysql> select * from student_info; +-----+---------+------------+------------+ | id | Name | Address | Subject | +-----+---------+------------+------------+ | 100 | Aarav | Delhi | Computers | | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Jaipur | Literature | | 110 | Rahul | Chandigarh | History | +------+--------+------------+------------+ 4 rows in set (0.00 sec)
이제 다음 쿼리의 도움으로 allrecords()라는 저장 프로시저를 만들었습니다.
mysql> Delimiter // mysql> Create Procedure allrecords() -> BEGIN -> Select * from Student_info; -> END// Query OK, 0 rows affected (0.02 sec) mysql> DELIMITER ;