2014-10-06 4 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

Ссылка: [** 13.2.11 Синтаксис UPDATE **] (http://dev.mysql.com/doc/refman/5.5/en/update.html) У вас есть паразитная запятая и ненужные парсеры в Операция UPDATE. Потенциально большая проблема заключается в том, что оператор UPDATE будет обновлять все строки в таблице; это не является недействительным для этого, но это не обычный шаблон. – spencer7593

ответ

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

Это именно то, что говорит моя хранимая процедура, и она не работает. см. сообщение об ошибке. –

+0

в вашем коде у вас есть запятая 'veldspar = veldspar_isk,' – meda

+0

Я удалил это после того, как попробовал ваш запрос. Я все еще получаю ту же проблему. Есть идеи? –

Смежные вопросы