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

MySQL 저장 프로시저로 특정 범위의 값을 테이블에 자동으로 삽입하는 방법

MySQL에서 지정한 범위의 값을 테이블에 한 번에 자동으로 삽입하고 싶다면 저장 프로시저(Stored Procedure)를 활용하는 것이 가장 효율적입니다. 반복문을 사용해 원하는 범위만큼 데이터를 순차적으로 입력할 수 있기 때문입니다.

이번 글에서는 10부터 20까지의 값을 테이블에 자동으로 삽입하는 과정을 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 값을 삽입할 테이블을 생성합니다.

mysql> create table DemoTable
    -> (
    -> Value int
    -> );
Query OK, 0 rows affected (0.55 sec)

2. 저장 프로시저 생성하기

다음은 10부터 20까지의 값을 테이블에 자동으로 삽입하는 저장 프로시저를 생성하는 쿼리입니다.

mysql> DELIMITER //
mysql> CREATE PROCEDURE AutoInsertValuesToTable()
    -> BEGIN
    ->     DECLARE startingRange INT DEFAULT 10;
    ->     WHILE startingRange <= 20 DO
    ->        INSERT DemoTable(Value) VALUES (startingRange);
    ->        SET startingRange = startingRange + 1;
    ->     END WHILE;
    -> END
    -> //
Query OK, 0 rows affected (0.23 sec)
mysql> DELIMITER ;

여기서 핵심 요소는 다음과 같습니다.

  • DELIMITER // : 저장 프로시저 내부의 세미콜론(;)이 문장 종료로 해석되지 않도록 구분 기호를 임시로 변경합니다.
  • DECLARE : 시작 값(10)을 담는 변수를 선언합니다.
  • WHILE 루프 : 변수 값이 20 이하일 동안 반복적으로 INSERT를 수행하고, 매번 값을 1씩 증가시킵니다.

3. 저장 프로시저 호출하기

생성된 저장 프로시저는 CALL 명령으로 실행할 수 있습니다.

mysql> call AutoInsertValuesToTable();
Query OK, 1 row affected (1.10 sec)

4. 결과 확인하기

이제 값이 정상적으로 삽입되었는지 SELECT 문으로 확인해 보겠습니다.

mysql> select *from DemoTable;

실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

+-------+
| Value |
+-------+
| 10 |
| 11 |
| 12 |
| 13 |
| 14 |
| 15 |
| 16 |
| 17 |
| 18 |
| 19 |
| 20 |
+-------+
11 rows in set (0.00 sec)

출력 결과에서 확인할 수 있듯이, 10부터 20까지 총 11개의 값이 테이블에 성공적으로 삽입되었습니다.

마무리

이처럼 저장 프로시저와 WHILE 반복문을 조합하면 대량의 연속된 숫자 데이터를 손쉽게 생성할 수 있습니다. 범위의 시작값과 끝값만 변경하면 어떤 구간이든 동일한 방식으로 적용할 수 있으므로, 테스트 데이터를 만들거나 초기 데이터를 세팅할 때 매우 유용하게 활용됩니다.