Mysql && Oracle 더미데이터 삽입 프로시저

공부는 혼자하는 거·2021년 9월 4일
0

DB

목록 보기
1/7

Mysql


방법1. PROCEDURE 이용
주의사항 : CREATE PROCEDURE ~ END 까지 커서로 전체 선택해서 Ctrl + Enter 눌러야 생성됨.
출처: https://insanelysimple.tistory.com/112 [Simple is best]

DELIMITER $$
DROP PROCEDURE IF EXISTS loopInsert$$ 

CREATE PROCEDURE loopInsert()
BEGIN
    DECLARE i INT DEFAULT 1;
   	DECLARE	gen varchar(100) default "남";
   
    WHILE i <= 100 DO
    	   if i%2 = 0 then
	   		SET gen = '여';
	   		ELSE
   			SET gen = '남';
    		
    		END IF;        
	   	
        INSERT INTO patient(name, gender, height,weight)
          VALUES(concat('홍길동 ',i), gen, 180, 75);
        SET i = i + 1;
    END WHILE;
END;


CALL loopInsert()

select * from patient p ;


ALTER TABLE patient AUTO_INCREMENT = 1; 
delete from patient;

Oracle


CREATE OR REPLACE PROCEDURE insertDummyData
as  i NUMBER := 1;
    gen NUMBER :=1;
	BEGIN
	   WHILE i <= 150 LOOP
            if MOD(i,2) = 0 then
                gen := 1; 
	   		ELSE
   			 gen := 0;
    		END IF;   
			INSERT INTO patient(pid, patientUserId, firstname,lastname, gender,age, height,weight, "comment")
	          VALUES(patient_seq.nextval , concat('patient ',i)  ,concat('GILDONG ',i), 'HONG',gen,  28, 180, 75,'dummy data');
	      i := i + 1;   
	END LOOP;
END insertDummyData;


인자가 없을 시에는 () 생략 후, 변수 선언부에 AS, oracle은 % 연산자가 없으니 MOD() 사용.

profile
시간대비효율

0개의 댓글