Я не совсем уверен, что или как ты сделал, но вот что я сделал, и это мгновенно сработало. Поскольку вы не указали версию MySQL, я использовал 5.7.
РЕДАКТИРОВАТЬ: Теперь, когда я вернулся, чтобы увидеть ваше утверждение создания процедуры, я понял, что NO SQL был введен в MySQL 8.0. Поскольку ваша процедура явно SQL, пожалуйста, удалите NO SQL и заново создайте процедуру.
Я оставляю свой пример MySQL 5.7 здесь для справки:
1) Создана простая таблица:
mysql> CREATE TABLE raceresults (
-> idKey VARCHAR(255),
-> Name VARCHAR(255),
-> adjCost FLOAT(5,2)
-> );
Query OK, 0 rows affected (0.06 sec)
2) Здесь мы вставляем пример строки данных:
mysql> INSERT INTO raceresults VALUES ('2016fulham02345', 'magicFlyingHorse', 0.00);
Query OK, 1 row affected (0.01 sec)
3) Чтобы создать (СОХРАНЕННУЮ) ПРОЦЕДУРУ, мы должны временно установить другой разделитель, чтобы синтаксический анализатор запросов не прерывал создание процедуры по умолчанию с запятой, поскольку он используется внутри процедуры. После изменения разделителя мы создаем процедуру и возвращаем разделителю точку с запятой
mysql> DELIMITER //
mysql> CREATE PROCEDURE update_test(IN idK VARCHAR(255), IN aName VARCHAR(255), IN cost FLOAT(5,2))
-> BEGIN
-> UPDATE `raceresults` SET `adjCost` = cost WHERE `Name` LIKE CONCAT(aName, '%') AND `idKey` = idK;
-> END//
mysql> DELIMITER ;
Query OK, 0 rows affected (0.00 sec)
4) Теперь посмотрим, как все это работает. До и после вызова процедуры я выбираю строки из базы данных. Вы можете увидеть изменение значения столбца стоимости:
mysql> SELECT * FROM raceresults;
+-----------------+------------------+---------+
| idKey | Name | adjCost |
+-----------------+------------------+---------+
| 2016fulham02345 | magicFlyingHorse | 0.00 |
+-----------------+------------------+---------+
1 row in set (0.00 sec)
mysql> CALL update_test('2016fulham02345', 'magic', 1.23);
Query OK, 1 row affected (0.02 sec)
mysql> SELECT * FROM raceresults;
+-----------------+------------------+---------+
| idKey | Name | adjCost |
+-----------------+------------------+---------+
| 2016fulham02345 | magicFlyingHorse | 1.23 |
+-----------------+------------------+---------+
1 row in set (0.00 sec)
А теперь еще один совет:
Если возможно, используйте только строчные таблицы, столбцы, индексы, функции, процедуры и т. Д., И в то же время всегда пишите все команды SQL в верхнем регистре (что вы и сделали). Это своего рода стандарт де-факто и облегчает жизнь как вам, так и другим людям, читающим ваш код.