2013-08-16 13 views
0

SP2에서 SP1을 호출하려고합니다. SP1은 동일한 PC의 다른 데이터베이스 스키마에 저장됩니다. mysql이 (다른 스키마의) 다른 프로 시저를 프로 시저에서 호출 중

CREATE DEFINER=`root`@`localhost` PROCEDURE `db2`.`sp2_procedure`() 
BEGIN 
    call sp1_procedure(50); 
END 

발췌문

다음 확인하시기 바랍니다이 또한 call db1.sp1_procedure(50); 는 내가 잘못 호출 또는 다른 스키마의 SP를 호출 오전 수 없습니다 시도

주 : SP - 절차 저장.

답변

1

간단히 말해서 접두어에 스키마 이름을 언급하면됩니다.

예를 들어

:

CREATE DEFINER=`root`@`localhost` PROCEDURE `db1`.`sp1`() 
BEGIN 
select 'I am procedure from another db'; 
END 

다음,

CREATE DEFINER=`root`@`localhost` PROCEDURE `db2`.`sp2`() 
BEGIN 
call db1.sp1(); 
END 

그리고 그 같은 전화 :

use db2; 
call `db2`.sp2(); 
+0

사용하여 DB2를; 트릭을 했어. – Sushant

+2

우리는 sp 이름 앞에 언급했기 때문에'use db2' 없이도 작동 할 것이다. –

관련 문제