MySQL 프로시저 강제 삭제 0 2 3,840

by ekujb [MySQL] [2016.03.30 10:22:03]


어제 질문을 드렸었는데, 약간의 변동이 있어서 다시 올립니다.

프로시저가 aaa, bbb, ccc, ddd, eee, fff, ggg, ......, zzz 가 있었는데, ddd를 수정하다가 정확한 타이밍에 네트워크가 끊어졌습니다.

이후 윈도우용 워크벤치 또는 show procedure status; 에서는 aaa, bbb, ccc 까지만 보이네요.

하지만 show create procedure ggg; 로 내용을 확인해 보면 살아 있습니다. 또한 MySQL이 설치된 리눅스에 workbench를 설치하고 확인해 보면 모든 프로시저 리스트가 나타입니다.

 

문제는 ddd 프로시저 인데,

drop procedure ddd; 를 해보면 Error 1305 ddd does not exist 라고 나오는데,

create procedure ddd ....  를 해보면 Error 1304 ddd already exists 라고 나오네요..

즉, 삭제를 할때는 "그런 프로시저 없어!" 라고 나오지만, ddd라는 이름으로 프로시저를 생성하면 "이미 있는거야!!" 라고 에러를 뱉어내네요..

show procedure status; 명령의 결과는 aaa, bbb, ccc 만 보입니다.

select * from mysql.proc; 결과에는 aaa, bbb, ... zzz 까지 다 나오지만, ddd 프로시저는 빠져 있습니다.

리눅스 상의 워크밴치에서 프로시저 목록에는 ddd 가 나타나지만, alter, drop 등을 시도해 보면 "ddd does not exist" 라고 나옵니다..

그리고 export로 모든 프로시저를 포함시키면, aaa, bbb, ccc만 뽑힙니다.

 

현재 가장 큰 문제는 윈도우용 워크밴치에서 aaa, bbb, ccc만 보인다는 것입니다.

ddd 프로시저만 정상적으로 삭제되면 문제가 해결될것 같은 생각이 드는데...

혹시 해결방법이 없을까요?

by l2monkeys [2016.03.30 11:51:26]

 select *  from ROUTINES  where ROUTINE_NAME='프로시저명'

하면 위 값이 조회가 되나요?


by ekujb [2016.03.30 12:00:46]

아니오, INFORMATION_SCHEMA.ROUTINES 에도 없네요 ㅠㅠ

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입