mySQL存储过程错误

时间:2011-02-24 09:59:43

标签: mysql mysql-workbench

我试图在我存储的mySQL过程中使用if语句,但是当我尝试在mySQL工作台中创建它时,我收到此错误ERROR 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database'.'table' WHERE date=dateIn;

以下是代码:

DELIMITER $$

CREATE DEFINER=`rates_d_db` PROCEDURE `byDate`(in dateIn VARCHAR(255),in action VARCHAR(255))
BEGIN

IF action = "edit" THEN EDIT `database`.`table` WHERE date=dateIn;

ELSE SELECT * FROM `database`.`table` WHERE date=dateIn;

END IF;

END$$

我是存储过程的新手,所以这可能是一个很小的错误。

提前Thanx!

2 个答案:

答案 0 :(得分:0)

date是mySQL中的reserved word。你也必须将它包装在反引号中。

答案 1 :(得分:0)

以下是您的程序的正确版本

DELIMITER $$

CREATE DEFINER=`rates_d_db` PROCEDURE `byDatee`(in dateIn VARCHAR(255),in action VARCHAR(255))
       BEGIN
           IF action = "edit" THEN 
                -- I used select below as i don't know what you want in edit either alter table or update table
               SELECT * FROM `database`.`table` WHERE date=dateIn;    
           ELSE
                SELECT * FROM `database`.`table` WHERE date=dateIn;
           END IF;
END $$