0

我正在尝试在存储的 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$$

我是存储过程的新手,所以这可能是一个非常菜鸟的错误。

提前谢谢!

4

2 回答 2

0

date是 mySQL 中的保留字。您还必须将其包装在反引号中。

于 2011-02-24T10:06:03.693 回答
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 $$
于 2016-07-16T10:19:08.150 回答