2016-07-28 5 views
0

나는 phpmyadmin을 사용하는 첫 번째 타이머입니다. 내 저장 프로 시저에서 내 코드에서 작업하고 있음을 알지 못합니다. phpmyadmin에 저장 프로 시저를 만드는 방법을 모르겠습니다.phpmyadmin의 저장 프로 시저

이 내 코드입니다 :

DELIMITER $$ 
CREATE PROCEDURE sp_1_service_card_report(IN service_card_no INT) 
BEGIN 
    DECLARE error_1 INT; 

    SELECT COUNT(service_card.customer_id) 
    INTO error_1 
    FROM service_card 
    WHERE service_card.id = 27; 

    DECLARE error_2 INT; 

    SELECT COUNT(service_card.serial_no_id) 
    INTO error_2 
    FROM service_card 
    WHERE service_card.id = 27; 

    IF error_1 > 0 AND error_2 > 0 THEN 
    SELECT 
     service_card.id as yes from service_card where service_card.id=27; 
    ELSE 
     SELECT service_card.customer_id as no from service_card.id=27; 
    END IF ; 

END $$ 
DELIMITER ; 

이 내 오류입니다 :

MySQL said: Documentation

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DECLARE error_2 INT;

SELECT COUNT(service_card.serial_no_id)
INTO ' at line 11

너희들이 나를 도와 드릴까요? 나는 또한 여기에 stackoverflow에 대한 답변을 검색 내 1 시간 보냈다.

감사합니다.

+0

error_1 바로 아래 라인을 선언 하시겠습니까? –

+0

두 번째 DECLARE를 첫 번째 명령 바로 다음으로 이동하십시오. –

+0

나는 eror_2를 맨 위에 놓았습니다. 방금 쉼표 때문에 빨간색 x 자리를 얻었습니다 (;) "내가 잘못한 것을 이해할 수 없습니다. –

답변

0

DECLARE 문은 처음에 배치해야합니다 그리고 당신은 프로 시저의 끝에서 쿼리에 select 오타가 : u는 해당 라인을 이동하려고 u는이 오류를 가지고 있지만, 왜 그랬는지 모르겠어요

DELIMITER $$ 
CREATE PROCEDURE sp_1_service_card_report(IN service_card_no INT) 
BEGIN 
    DECLARE error_1 INT; 
    DECLARE error_2 INT; 

    SELECT COUNT(service_card.customer_id) 
    INTO error_1 
    FROM service_card 
    WHERE service_card.id = 27; 


    SELECT COUNT(service_card.serial_no_id) 
    INTO error_2 
    FROM service_card 
    WHERE service_card.id = 27; 

    IF error_1 > 0 AND error_2 > 0 THEN 
    SELECT 
     service_card.id as yes from service_card where service_card.id=27; 
    ELSE 
     SELECT service_card.customer_id as no from service_card where service_card.id=27; 
    END IF ; 

END $$ 
DELIMITER ;