2014.06.26 21:08

예를들어 sp를 사용할 때, 내가 조회하는 테이블에 seqIndex라는 컬럼이 있고,


쿼리문은 아래와 같다고 가정한다.


insert into tbTable_Backup (seqIndex) select @seqIndex from tbTable where index=@inp_index;


tbTable과 tbTable_Backup은 같은 구조로 되어 있으며,


tbTable은 seqIndex bigint 컬럼 하나만 가지고 있다고 가정한다.


위 쿼리에서 원래는 서브쿼리인 select문은, 아래의 코드가 원래 의도했던 바다.


insert into tbTable_Backup (seqIndex) select seqIndex from tbTable where index=@inp_index;


이 경우, 


Query Browser 든, WorkBench든 문법 오류를 발생하지 않는다.


(컬럼 이름과 변수명이 틀린다고 해도 오류를 발생하지는 않음.)


sp를 사용할 때는 더 황당해 지는데, SQLExecute를 실행해도 오류는 발생하지 않는다.



output 값이 없을 경우, 이런 에러에 대해서는 대처할 방안이 없다. 


또한 output 값이 있어도 정상적인 output값을 리턴하지 않는다.


지정된 output값에는 @seqIndex값이 들어가 있을 것이다. 


output 변수의 이름이 @seqIndex가 아니어도...


단순 오타에서 비롯된 문제긴 했지만, 


mysql에서 어떻게 이런 코드가 output값에 영향을 미쳤는지 찾아봐야 할 듯.









저작자 표시 비영리 동일 조건 변경 허락
신고
2014.05.22 18:45

쿼리 브라우져에서 sp가 안보이는 현상 발생.


CentOS , Mysql. 5.6.x, 


[발생 상황]

- sp를 실시간으로 수정하기 위해 sp 수정해서 실행을 누름. 

- 때마침 DB 부하 테스트 중이었는데 ... 

- sp 수정을 위한 실행이 멈춤. 응답없음으로 돌변

- 시스템 재부팅 해봄. 

- 디스크 용량 부족을 확인함.

- 디스크 정리.


이제 다른 DB는 다 보이는데, 내가 작업하던 DB만 안보임. 


show procedure status 때려보니 일단 존재는 함. 휴~~~


show create procedure sp이름; 해보니 내용도 잘 존재함. 휴~~~


근데 왜 쿼리 브라우져에서는 sp가 안보이는거지??


--;; 리플레쉬하니 나오네.. ㅋ


저작자 표시 비영리 동일 조건 변경 허락
신고