2014-10-06 48 views
-1

我正在嘗試創建一個存儲過程,該過程更新MySql數據庫中某個表上字段的值。嘗試運行查詢時,我不斷收到錯誤消息。下面是我得到的錯誤和存儲過程。任何幫助將不勝感激。更新不在MySql中編譯的存儲過程

Query: CREATE DEFINER=`YHI`@`%` PROCEDURE `update_ore_prices`(IN veldspar_isk decimal(10,2)) BEGIN Update Ore_Ice_Prices SET(veldspa... 

Error Code: 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 '(
    veldspar_isk = veldspar, 

); 
END' at line 6 

查詢:

DELIMITER $$ 

USE `YHI`$$ 

DROP PROCEDURE IF EXISTS `update_ore_prices`$$ 

CREATE DEFINER=`YHI`@`%` PROCEDURE `update_ore_prices`(
IN veldspar_isk DECIMAL(10,2) 
) 
BEGIN 
UPDATE Ore_Ice_Prices 
SET(
    veldspar = veldspar_isk, 

); 
END$$ 

DELIMITER ; 
+0

Ref:[** 13.2.11 UPDATE Syntax **](http://dev.mysql.com/doc/refman/5.5/en/update.html)你有一個虛假的逗號和不必要的parens UPDATE語句。一個可能更大的問題是UPDATE語句將更新表中的所有行;這樣做並非無效,但這不是一種常見的模式。 – spencer7593 2014-10-06 03:53:06

回答

0

變化:

UPDATE Ore_Ice_Prices 
SET(
    veldspar = veldspar_isk, 

); 

UPDATE Ore_Ice_Prices 
SET veldspar = veldspar_isk; 

DELIMITER $$ 

USE `YHI`$$ 

DROP PROCEDURE IF EXISTS `update_ore_prices`$$ 

CREATE DEFINER=`YHI`@`%` PROCEDURE `update_ore_prices`(
IN veldspar_isk DECIMAL(10,2) 
) 
BEGIN 
UPDATE Ore_Ice_Prices SET veldspar = veldspar_isk; 
END$$ 
+0

這正是我的存儲過程所說的,它不起作用。看到錯誤信息。 – 2014-10-06 03:40:37

+0

在你的代碼中,你有一個逗號'veldspar = veldspar_isk,' – meda 2014-10-06 03:41:54

+0

我試過你的查詢後刪除了。我仍然遇到同樣的問題。有任何想法嗎? – 2014-10-06 03:43:54