2011-02-24 133 views
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;mySQL存储过程错误

下面是代码:

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提前!

+0

要在编辑干什么用的,这是错误的(编辑'database'.'table'其中date = dateIn)。你想在这里更新或更改语句吗? – 2016-07-16 10:21:07

回答

0

date是mySQL中的reserved word。你将不得不把它换成反引号。

+0

也许我做错了,但这就是我所做的,仍然没有运气......'''''''''''',''是反引号。 – Odyss3us 2011-02-24 10:27:23

+0

你把'date'包含在'WHERE date = dateIn'中的反引号中? – 2011-02-24 10:29:33

+0

我的确如此'date'= dateIn' – Odyss3us 2011-02-24 10:31:33

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 $$