관리 메뉴

제뉴어리의 모든것

프로시저로 반복 데이터 Insert 본문

MySql

프로시저로 반복 데이터 Insert

제뉴어리맨 2021. 2. 12. 22:35

여러개의 더미 데이터를 넣을때 프로시저 등록 방법

 

DELIMITER $$ 

CREATE PROCEDURE mymall.loopInsert()  
BEGIN 
DECLARE i INT DEFAULT 1; 

WHILE i <= 100 DO  

   INSERT INTO `mymall`.`member` 
(`seq`,`id`,`pwd`,`nick`,`base_address`,`detail_address`,`phone_number`,`reg_date`,`mod_date`) 
VALUES 
(null,concat('member',i),'qwer1234','멤버','기본주소','상세주소','010101031','2021-02-02',null); 

SET i = i + 1; 

END WHILE; 

END$$ 

DELIMITER $$ 

 

해당 쿼리문으로 프로시저 등록 한 후 
CALL loopInsert; 를 실행하여 프로시저를 호출하면 프로시저가 실행된다

(CRECREATE PROCEDURE mymall.CREATE PROCEDURE mymall.loopInsert()  부분에서 mymall은 DB명이다)

 

=== 해석

concat('member',i) : member라는 문자열과 i라는 증가 되는 Int형의 조합

결과 : member1, member2, member3 .. 내용으로 Insert됨

 

=== 결과

loopInsert 라는 프로시저가 등록 됨

 

=== 추가 유용한 mysql 쿼리

=> show procedure status  : 등록 된 프로시저 확인

=> DROP PROCEDURE IF EXISTS loopInsert : loopInsert라는 프로시저가 있을 경우 삭제 (없는데 해당 쿼리 실행시, 존재하지 않는 프로시저라면 Warnning 발생)

=> show create PROCEDURE [프로시저명] : 생성된 프로시저의 쿼리 내용 보기

(결과 화명에서 create procedure 컬럼에 필드 클릭하여 확인 가능) 

 

 

 

 

 

++ 추가 (2021.02.12)

==> 프로시저 생성시에 동일 프로시저 있을 경우 삭제 쿼리 추가

DROP PROCEDURE IF EXISTS mymall.loopInsert$$

 

==> 프로시저에 인자 추가

call mymall.loopInsert('닉네임') 으로 실행 가능

DELIMITER $$ 
DROP PROCEDURE IF EXISTS mymall.loopInsert$$ /* mymall.loopInsert 프로시저 있을경우 삭제하고 */
CREATE PROCEDURE mymall.loopInsert(IN var VARCHAR(10))  /* 프로시저 호출시 인자값 넣어서 실행 */
BEGIN 
DECLARE i INT DEFAULT 1; 

WHILE i <= 100 DO  

   INSERT INTO `mymall`.`member` 
(`seq`,`id`,`pwd`,`nick`,`base_address`,`detail_address`,`phone_number`,`reg_date`,`mod_date`) 
VALUES 
(null,concat('member',i),'qwer1234',var,'기본주소','상세주소','010101031','2021-02-02',null); /* 닉네임에 var라는 인자를 넣어서 쿼리 완성 */

SET i = i + 1; 

END WHILE; 

END$$ 

DELIMITER $$ 

 

 

 

참조 : [Mysql] mysql 반복문, for문, loop 사용법 (tistory.com)

 

[Mysql] mysql 반복문, for문, loop 사용법

@ 설명 ## LOOP 문 DELIMITER $$ -- 프로시저 생성 시작을 알림 DROP PROCEDURE IF EXISTS loop_test $$ -- 프로시저가 만들어져 있다면 삭제하고 다시 만듬 CREATE PROCEDURE loop_test(IN var INT) -- 파라미터..

llnote.tistory.com

MySQL 반복문(Loop, While, Repeat) : 네이버 블로그 (naver.com)

'MySql' 카테고리의 다른 글

select 쿼리 수행 순서  (0) 2021.02.14
외래기 지정시 옵션  (0) 2021.02.10
[SQL] GROUP, HAVING  (0) 2021.01.21
LEFT JOIN 과 RIGHT JOIN  (0) 2021.01.20
@Query 어노테이션에서 Native SQL 사용법  (0) 2021.01.14