2014-11-30 5 views
0

값을 다르게 입력하면 작동합니다. 그것은 나에게 메시지 텍스트의 가치를 반환했습니다. "그 전자 책은 존재하지 않습니다."MySQL 저장 프로 시저가 값을 반환하지 않습니다.

내 데이터베이스에있는 정확한 값을 입력하면 실행 만하지만 어떤 값도 반환하지 않습니다. 왜?

CREATE PROCEDURE SPBus ( 
     IN BUS VARCHAR (20) 
    ) 
    BEGIN 

    START TRANSACTION; 
    IF NOT EXISTS (SELECT * FROM Ebook WHERE TituloEbook LIKE CONCAT('%',BUS,'%')) THEN 
     SIGNAL SQLSTATE '45000' 
     SET MESSAGE_TEXT= 'That ebook doesnt exists'; 
    ELSE 
     SELECT * FROM Ebook WHERE TituloEbook LIKE CONCAT('%',BUS, '%'); 
    END IF; 
    COMMIT; 
END; 

답변

0

당신이 MESSAGE_TEXT을 설정하지 않는 경우 다음 절차의 경우 다른이 실행됩니다 때문입니다. 이 하나를 시도

CREATE PROCEDURE SPBus ( 
     IN BUS VARCHAR (20) 
    ) 
    BEGIN 

    START TRANSACTION; 
    IF NOT EXISTS (SELECT * FROM Ebook WHERE TituloEbook LIKE CONCAT('%',BUS,'%')) THEN 
     SIGNAL SQLSTATE '45000' 
     SET MESSAGE_TEXT= 'That ebook doesnt exists'; 
    ELSE 
     SELECT * FROM Ebook WHERE TituloEbook LIKE CONCAT('%',BUS, '%'); 
     SET MESSAGE_TEXT = 'That ebook exists'; 
    END IF; 
    COMMIT; 
END; 
+0

그것은 단지 "그 전자 책이 존재"하지만 전자 책의 이름을보고 싶어 나를 말한다 코드를 ... –

+0

그런 다음 당신은 변수에 이름을 선택하고 메시지에 연결할한다. 여기에 선택에 대한 자세한 내용보기 : http://dev.mysql.com/doc/refman/5.0/en/select-into.html –

+0

내가 할 ... 내 데이터베이스를 게시하십시오 –

관련 문제