본문 바로가기
서버

mysql 프로시저 loop를 이용하여 테스트 데이터 insert

by 탁구치는 개발자 2013. 2. 19.

간혹 테스트를 위해 수백만 건의 데이터를 테이블에 넣어줄 일이 생긴다.

그럴때 다음의 프로시저 샘플을 이용하여 데이터를 밀어 넣자.


DELIMITER $$

DROP PROCEDURE IF EXISTS FILL_RATE_TEST_DATA$$

CREATE PROCEDURE FILL_RATE_TEST_DATA()

BEGIN

DECLARE i INT DEFAULT 1;

DECLARE log_date VARCHAR(255);

WHILE i <= 30 DO

SET log_date = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL i DAY), '%Y%m%d');

INSERT INTO 테이블 (LOG_DATE, INVENTORY_ID, REQ_CNT) VALUES (log_date, '0x2011', 3000000);

SET i = i + 1;

END WHILE;

END$$

DELIMITER $$


위의 프로시저 생성 후 CALL 명령어를 통해 실행한다.

CALL FILL_RATE_TEST_DATA();