2011-02-24 177 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 $$