방법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;
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() 사용.