MySQL stored function의 SELECT 쿼리에서 DB명을 변수로 치환 가능한가요?
글쓴이: superkkt / 작성시간: 금, 2008/05/23 - 9:58오전
안녕하세요.
MySQL의 stored function을 만들고 있습니다. 여러 개의 DB로 나누어진 데이터에 접근을 해야하는데, 우선 어떤 테이블에서 접근할 DB명을 가지고와서 해당 DB에서 실제 데이터를 가져와야 합니다. 그래서 접근할 DB명을 쿼리해서 변수에 저장하고, 해당 DB에서 아래와 같이 실제 데이터를 가지고 오도록 했습니다.
DECLARE roster_cursor CURSOR FOR SELECT CONCAT(user.id, "@", realm), user.name, department.name FROM dbname.user JOIN dbname.department ON user.department_uid = department.uid WHERE user.id != userid;
위에서 FROM과 JOIN 부분에서 사용한 dbname이 접근할 DB명이 있는 변수인데요. 이게 변수처럼 사용되지 않고 DB 이름 자체로 인식이 되는군요.
그래서 USE 명령어를 먼저 써볼려고 했는데, stored procedure에서는 USE가 사용 불가능하다고 나오네요. 그리고 SQL 쿼리를 문자열로 먼저 구성해서 나중에 EXECUTE하는 방법도 시도해 봤는데, 그것 역시 CURSOR 기능을 사용할때는 안되더군요.
고수님들의 조언 부탁 드립니다.
Forums:
댓글 달기