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

MySQL 저장 프로시저(Stored Procedure)로 테이블에 데이터 삽입하는 방법

테이블에 데이터를 삽입하는 저장 프로시저(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 파라미터인 StudentNameStudentAge는 프로시저 호출 시 외부에서 값을 전달받아 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 작업을 하나의 프로시저 호출로 간편하게 처리할 수 있습니다.