DB

동적 SQL

sdafdq 2023. 11. 7. 10:18

동적 쿼리 아니다.

동적 SQL은 sql을 준비해뒀다가 원하는 타이밍에 실행 하는 거다.

 

prepare myQuery from 'select * from member where mem_id = "BLK"';
execute myQuery;
deallocate prepare myQuery;

 

저렇게 prepare 해서 쿼리를 저장해 뒀다가, 

excute 하면서 실행하면 된다.

 

그리고 deallocate prepare 해 주면서 해제해줘야 한다.

약간 동적 메모리 해제해주는 그거 같다. 

 

prepare 준비할쿼리명 from '쿼리';

execute 준비할쿼리명;

deallocate prepare 준비할쿼리명;

 

 

 

인자주기.

set @currDate = current_timestamp();
set @aaa = 'asdf';

prepare myQuery from 'insert into gate_table values(null, ?, ?)';
execute myQuery using @currDate, @aaa;

deallocate prepare myQuery;

select * from gate_table;

그러니까 이것도 이렇게 보면 함수 같은 거다.

 

저렇게 미리 정의를 해 놨다가 

실행할 때

execute 쿼리명 using @인자1, @인자2

하면서 실행하면 된다.

 

근데 @변수만 되는 모양이다.

 

메모리에 상주하지 않게 해제해주고.

 

'DB' 카테고리의 다른 글

뷰 가상테이블  (0) 2023.11.09
제약조건  (0) 2023.11.08
스토어드 프로시저  (0) 2023.11.06
join 연습  (0) 2023.11.03
자체 조인  (0) 2023.11.03