Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

'BEGIN'과 'END' 없이 MySQL 저장 프로시저 만드는 방법

MySQL 저장 프로시저를 'BEGIN'과 'END' 없이 생성하기

MySQL에서는 저장 프로시저를 'BEGIN'과 'END' 키워드 없이도 생성할 수 있습니다. 두 키워드가 포함된 경우와 동일한 방식으로 작성하되, BEGIN과 END 부분만 생략하면 됩니다. 다만 이 방식은 프로시저 본문이 단일 SQL 문장일 때만 사용할 수 있다는 점에 유의해야 합니다.

다음 예제는 'BEGIN'과 'END' 없이 Student_info 테이블의 모든 행을 조회하는 저장 프로시저를 생성하는 과정입니다.

예제

mysql> Delimiter //
mysql> CREATE PROCEDURE Hello()
    -> SELECT * from Student_info; //
Query OK, 0 rows affected (0.08 sec)

위 실행 결과에서 확인할 수 있듯이, MySQL은 BEGIN과 END 없이도 정상적으로 저장 프로시저를 생성했습니다. 이제 CALL 문을 사용하여 해당 프로시저를 호출해 보겠습니다.

mysql> Delimiter ;

mysql> CALL Hello();
+-----+---------+------------+------------+
| id  | Name    | Address    | Subject    |
+-----+---------+------------+------------+
| 101 | YashPal | Amritsar   | History    |
| 105 | Gaurav  | Chandigarh | Literature |
| 125 | Raman   | Shimla     | Computers  |
+------+---------+------------+------------+
3 rows in set (0.18 sec)
Query OK, 0 rows affected (0.28 sec)

핵심 정리

  • 'BEGIN'과 'END'는 여러 개의 SQL 문을 하나의 블록으로 묶을 때 필요합니다.
  • 프로시저 본문이 SELECT 문처럼 단일 문장이라면 BEGIN과 END를 생략할 수 있습니다.
  • 프로시저 생성 후에는 반드시 DELIMITER ; 명령으로 구분자를 원래 상태로 되돌려야 합니다.
  • 생성된 프로시저는 CALL 문으로 간편하게 호출할 수 있습니다.