2016-07-28 37 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

你们能帮助我吗?我花了我的1小时搜索答案也在这里在stackoverflow。

谢谢。

+0

我不知道为什么你长了这个错误,但没有ü尝试以移动线就在error_1声明行之下? –

+0

尝试将第二个DECLARE移到第一个之后。 –

+0

我只是把eror_2放在最上面。由于逗号(;),我刚刚得到了红色的X点“我只是不明白我做错了什么。 –

回答

0

DECLARE语句必须放在第一,你必须在查询select错字在你的程序的结束:

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 ;