이러한 유형의 저장 프로시저를 작성하는 것은 이번이 처음입니다.
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
동안 데이터베이스 이름을 탐색
으아악
end while;
cur 닫기;
end ;
구분자 $$
왜????
프롬프트가 뻔한데 테이블이 존재하지 않습니다
declare dbname varchar(50);
이름을 덮어썼나요?몇 가지 문법 문제에 대해 이야기해 봅시다.
while ( stop is not null) do
中的stop
应该游标dbname
그렇습니다. 커서를 판단하세요. 그렇지 않으면 중지가 참조되지 않습니다.마지막
end;
,前面你定义了delimiter $$`以`$$
为结束符,应该改为end$$
,最后不要忘了结尾改成delimiter ;