>  Q&A  >  본문

linux - 호출 시 mysql 저장 프로시저 오류 보고

이러한 유형의 저장 프로시저를 작성하는 것은 이번이 처음입니다.
delimiter $$
create Procedure mydb()
begin
declare dbname varchar(50);
declare stop int default 0 ;
cur 커서 for(이름에서 이름 선택); //이름 테이블은 데이터베이스 이름을 저장합니다. CONTINUE HANDLER FOR SQLSTATE '02000' SET stop = null;
open cur;
cur를 dbname으로 가져옵니다. (stop은 null이 아님) do
동안 데이터베이스 이름을 탐색
으아악

cur를 DB 이름으로 가져오기;

end while;
cur 닫기;
end ;
구분자 $$

저장 프로시저 실행 중 오류: ERROR 1146(42S02): 'dbname.prounit' 테이블이 존재하지 않습니다

왜????

滿天的星座滿天的星座2697일 전803

모든 응답(2)나는 대답할 것이다

  • 淡淡烟草味

    淡淡烟草味2017-05-31 10:39:32

    프롬프트가 뻔한데 테이블이 존재하지 않습니다
    declare dbname varchar(50);이름을 덮어썼나요?

    회신하다
    0
  • 迷茫

    迷茫2017-05-31 10:39:32

    몇 가지 문법 문제에 대해 이야기해 봅시다.

    1. while ( stop is not null) do中的stop应该游标dbname그렇습니다. 커서를 판단하세요. 그렇지 않으면 중지가 참조되지 않습니다.

    2. 마지막end;,前面你定义了delimiter $$`以`$$为结束符,应该改为end$$,最后不要忘了结尾改成delimiter ;

    회신하다
    0
  • 취소회신하다