테이블에 데이터를 삽입하는 저장 프로시저(Stored Procedure)를 작성하려면 먼저 데이터가 저장될 테이블을 생성해야 합니다. 아래 예제에서는 학생 정보를 담을 테이블을 만든 뒤, 해당 테이블에 데이터를 삽입하는 저장 프로시저를 단계별로 살펴보겠습니다.
1단계: 테이블 생성하기
저장 프로시저를 작성하기 전에 데이터를 삽입할 대상 테이블을 먼저 만들어야 합니다.
mysql> create table insertDataUsingStoredProcedure -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY , -> Name varchar(20), -> Age int -> ); Query OK, 0 rows affected (0.51 sec)
위 테이블은 자동 증가(AUTO_INCREMENT) 기본키인 Id, 학생 이름을 저장하는 Name, 나이를 저장하는 Age 컬럼으로 구성되어 있습니다.
2단계: 저장 프로시저 작성하기
다음은 테이블에 데이터를 삽입하는 저장 프로시저를 작성하는 쿼리입니다.
mysql> DELIMITER // mysql> CREATE PROCEDURE StoredProcedureInsertData(IN StudentName varchar(100),IN StudentAge int) -> BEGIN -> insert into insertDataUsingStoredProcedure(Name,Age) values (StudentName, StudentAge ); -> END -> // Query OK, 0 rows affected (0.13 sec) mysql> DELIMITER ;
여기서 DELIMITER //는 프로시저 본문 내부의 세미콜론(;)이 문장 종료로 해석되지 않도록 구분 기호를 임시로 변경하는 명령입니다. 프로시저 생성이 끝나면 반드시 DELIMITER ;로 원래 상태로 되돌려야 합니다. 또한 IN 파라미터인 StudentName과 StudentAge는 프로시저 호출 시 외부에서 값을 전달받아 INSERT 문에 사용됩니다.
3단계: 저장 프로시저 호출하기
작성한 저장 프로시저를 CALL 문으로 호출하여 실제로 데이터를 삽입해 보겠습니다.
mysql> call StoredProcedureInsertData('Chris',24);
Query OK, 1 row affected (0.18 sec)
프로시저 이름 뒤 괄호 안에 이름('Chris')과 나이(24)를 인자로 전달하면, 해당 값이 테이블에 한 행으로 삽입됩니다.
4단계: 삽입된 데이터 확인하기
이제 데이터가 테이블에 정상적으로 삽입되었는지 SELECT 문으로 확인해 보겠습니다.
mysql> select * from insertDataUsingStoredProcedure;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+----+-------+------+ | Id | Name | Age | +----+-------+------+ | 1 | Chris | 24 | +----+-------+------+ 1 row in set (0.00 sec)
결과를 보면 Id는 자동으로 1이 할당되었고, 전달한 이름과 나이가 정상적으로 저장된 것을 확인할 수 있습니다. 이처럼 저장 프로시저를 활용하면 반복적인 INSERT 작업을 하나의 프로시저 호출로 간편하게 처리할 수 있습니다.