일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- foreignkey
- 테스트메소드
- WeNews
- ㅔㄴ션
- 추후정리
- appspec.yml
- 예약
- docker명령어
- 검색
- MySQL
- application.yml
- 2 > /dev/null
- 커밋메세지수정
- querydsl
- 참조키
- 서브쿼리
- AuthenticationEntryPoint
- subquery
- ubuntu
- 컨테이너실행
- 포트
- Query
- EC2
- 네이티브쿼리
- 메소드명
- 테스트
- 메세지수정
- appspec
- 외부키
- 적용우선순위
- Today
- Total
제뉴어리의 모든것
프로시저로 반복 데이터 Insert 본문
여러개의 더미 데이터를 넣을때 프로시저 등록 방법
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' 카테고리의 다른 글
2024-08-18 MySql 관련 공부 (0) | 2024.08.18 |
---|---|
select 쿼리 수행 순서 (0) | 2021.02.14 |
외래기 지정시 옵션 (0) | 2021.02.10 |
[SQL] GROUP, HAVING (0) | 2021.01.21 |
LEFT JOIN 과 RIGHT JOIN (0) | 2021.01.20 |