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

MySQL 저장 프로시저 작성 및 사용을 시작하기 위한 필수 전제 조건

MySQL에서 저장 프로시저(Stored Procedure)를 작성하고 사용하려면 시작하기 전에 반드시 확인해야 할 몇 가지 전제 조건이 있습니다. 이 글에서는 저장 프로시저 개발을 원활하게 진행하기 위해 사전에 점검해야 할 핵심 사항들을 단계별로 살펴보겠습니다.

1. MySQL 버전 확인

저장 프로시저는 MySQL 5 버전부터 도입된 기능입니다. 따라서 저장 프로시저를 작성하고 사용하기 전에 먼저 현재 사용 중인 MySQL의 버전을 확인해야 합니다. 버전은 아래 쿼리로 간단히 확인할 수 있습니다.

mysql> Select VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.7.20    |
+-----------+
1 row in set (0.10 sec)

위 결과에서 확인할 수 있듯이, MySQL 5 이상의 버전이라면 저장 프로시저 기능을 사용할 수 있습니다.

2. 현재 사용자의 권한 확인

저장 프로시저나 함수를 생성하려면 CREATE ROUTINE 권한이 필요합니다. CREATE PROCEDURECREATE FUNCTION 구문은 모두 이 권한을 요구합니다.

기본적으로 MySQL은 루틴(프로시저 또는 함수)을 생성한 사용자에게 ALTER ROUTINE 권한과 EXECUTE 권한을 자동으로 부여합니다. 만약 이러한 자동 부여 동작을 변경하고 싶다면 시스템 변수인 automatic_sp_privileges를 비활성화하면 됩니다.

현재 사용자가 보유한 권한은 다음 쿼리로 확인할 수 있습니다.

mysql> SHOW PRIVILEGES;

3. 데이터베이스 선택

저장 프로시저를 생성하기 전에 사용 가능한 데이터베이스 중에서 작업할 데이터베이스를 반드시 먼저 선택해야 합니다. 데이터베이스 선택은 다음과 같은 쿼리로 수행할 수 있습니다.

mysql> USE query;
Database changed

위 쿼리 결과를 보면 현재 'query'라는 이름의 데이터베이스를 사용하고 있음을 알 수 있습니다.

4. 구분자(DELIMITER) 지정

구분자(Delimiter)란 하나의 SQL 문장이 끝났음을 나타내는 데 사용되는 문자 또는 문자열입니다. 기본적으로 세미콜론(;)이 구분자로 사용됩니다.

그러나 저장 프로시저에서는 문제가 발생할 수 있습니다. 하나의 프로시저 내부에는 여러 개의 SQL 문장이 포함될 수 있으며, 각 문장은 모두 세미콜론으로 끝나야 하기 때문입니다. 따라서 프로시저 본문 내에서 거의 사용되지 않는 문자열을 새로운 구분자로 지정하는 것이 좋습니다.

일반적으로 더블 슬래시(//)나 더블 달러 기호($$) 등을 많이 사용하며, 그 외에도 원하는 다른 구분자를 자유롭게 선택할 수 있습니다. 구분자 변경은 다음 쿼리로 수행합니다.

mysql> DELIMITER //

이제 기본 구분자가 // 기호로 변경되었습니다. 실제로 아래 쿼리처럼 SQL 문장 마지막에 세미콜론 대신 //를 붙여 실행하면 정상적으로 동작하는 것을 확인할 수 있습니다.

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)

마무리

지금까지 MySQL 저장 프로시저를 작성하고 사용하기 위해 필요한 네 가지 전제 조건, 즉 MySQL 버전 확인, CREATE ROUTINE 권한 확보, 데이터베이스 선택, 구분자 지정에 대해 알아보았습니다. 이 단계들을 미리 점검해 두면 이후 저장 프로시저를 개발하는 과정에서 발생할 수 있는 오류와 혼란을 효과적으로 예방할 수 있습니다.