mysql에 프로시저 기능을 첨 사용하게 되는데요 ^^;;
잘 모르겠어서 질문을 올립니다.
2가지 질문이 있습니다.
1번째
CREATE DEFINER = 'root'@'localhost' PROCEDURE `proc_test`()
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
insert into test2 (test1_id, name, title)
select id as test1_id ,aaa as name , bbb as title FROM test1 ;
END;
해당 프로시저를 실행했을때 insert된 갯수를 output하고 싶습니다. 어떻게 수정해야 되나요?
2번째 질문
해당 프로시저를 다른 프로시저에서 호출 하도록 합니다. 위와 같은 어려 작업의 프로시저를 작업한후에
CREATE DEFINER = 'root'@'localhost' PROCEDURE `proc_call`()
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
DECLARE cnt int;
set cnt = 1;
insert into t_sp_log (indate, cnt, sp_type, sp_name,ins_cnt ) value ( now(), cnt, 'S','proc_test', 0 );
call proc_test;
insert into t_sp_log (indate, cnt, sp_type, sp_name,ins_cnt ) value ( now(), cnt, 'E','proc_test', ????);
insert into t_sp_log (indate, cnt, sp_type, sp_name,ins_cnt ) value ( now(), cnt, 'S','proc_test2', 0 );
call proc_test2;
insert into t_sp_log (indate, cnt, sp_type, sp_name,ins_cnt ) value ( now(), cnt, 'E','proc_test2', ???? );
insert into t_sp_log (indate, cnt, sp_type, sp_name,ins_cnt ) value ( now(), cnt, 'S','proc_test3', 0 );
call proc_test3;
insert into t_sp_log (indate, cnt, sp_type, sp_name,ins_cnt ) value ( now(), cnt, 'E','proc_test3', ???? );
END;
위 해당 proc_call에서 다른 프로시저를 호출하고 호출전 호출후에 로그를 쌓도록 했습니다.
해당 프로시저를 호출한후에 로그를 insert할때 맨 마지막 필드인 ins_cnt에 현제 ???? 되어 있는곳에 프로시저를 call해서 나온 insert된 값을 넣고 싶습니다.
어떻식으로 프로시저를 짜야 할지를 모르겠습니다.
고수님들 답변 부탁드립니다. |