MySql 2

안규원·2021년 5월 24일
0

legacy_etc

목록 보기
4/9
post-thumbnail
  1. ETL = extraction 추출 transfer 변환 load 적재
  2. 처리하기 쉽도록... 추출한다음에 변환하여 내 DB에 담는 것! 이건 autocommit하면 24시간
  3. 노트패드로 꺼내서 인코딩 해도됨...
  4. 참고... 여러 로직과 query상에서 사용가능한 메소드..
    DROP procedure IF EXISTS exam_calc;
    DELIMITER $$

CREATE procedure exam_calc(_page int,_ppcnt int)

page = 계속 변화하는 페이지, ppcnt = 고정된 한페이지당 출력수

BEGIN
DECLARE _kor int;
DECLARE _eng int;
DECLARE _mat int;
DECLARE _sum int;
DECLARE _ave int;
DECLARE _start int;

####################
drop table if exists exam_calc_temp;
create table exam_calc_temp(
	title varchar(50),
	kor integer,
	eng integer,
	mat integer,
	sum integer,
    ave integer
    );
    
insert into exam_calc_temp(title, kor, eng, mat)
select goodjob.studentid, goodjob.kor, goodjob.eng, goodjob.mat from goodjob limit 0,30;

update exam_calc_temp set sum=kor+eng+mat;
update exam_calc_temp set ave=sum/3;

####################
## 들어온 페이지로 _start와 _cnt구하기
set _start = (_page-1) *_ppcnt +1; ## 해당 페이지의 시작번호...

## 페이지당 합계계산
SELECT sum(kor) INTO _kor FROM examtable Limit _start,_ppcnt;
SELECT sum(eng) INTO _eng FROM examtable Limit _start,_ppcnt;
SELECT sum(mat) INTO _mat FROM examtable Limit _start,_ppcnt;
SELECT sum(sum) INTO _sum FROM examtable Limit _start,_ppcnt;
SELECT sum(ave) INTO _ave FROM examtable Limit _start,_ppcnt;

INSERT INTO reserv_stat VALUE ("페이지별 합계",_kor,_eng,_mat,_sum,_ave);
###나머지는 계속 알아서 해라

END $$
DELIMITER ;

call exam_calc();

select * from exam_calc_temp;

  1. 메소드 생성 및 호출, 제거

mysql> create procedure exam_calc(paga int, ppcnt int) begin end;
Query OK, 0 rows affected (0.01 sec)

mysql> call exam_calc(30, 1);
Query OK, 0 rows affected (0.00 sec)

mysql> drop procedure if exists exam_calc;
Query OK, 0 rows affected (0.02 sec)

  1. 다중커리 처리
    jdbc:mysql://localhost:3306/test?allowMultiQueries=true

0개의 댓글