Я пытаюсь сделать простой тест для цикла while в хранимой процедуре из этого учебника Я столкнулся с этой ошибкой
Unknown Column cnt in 'field list'
Вот зп, может кто поможет?
DELIMITER $$
CREATE PROCEDURE `WhileLoopProc` ()
BEGIN
DECLARE cnt INT DEFAULT 1;
DECLARE str VARCHAR(255) DEFAULT '';
WHILE cnt < 10 DO
SET str = CONCAT(str,cnt,',');
set cnt = cnt + 1 ;
END WHILE;
SELECT str;
END $$
DELIMITER ;
1
palAlaa
17 Мар 2013 в 12:50
1
Но он работает нормально здесь ?
– Mahmoud Gamal
17 Мар 2013 в 12:57
Ммм, у меня была версия MySQL 5.5.16, как вы думаете, проблема с версиями?
– palAlaa
17 Мар 2013 в 12:59
Как вы называете процедуру?
– eggyal
17 Мар 2013 в 13:02
Вызовите test.WhileLoopProc (), потому что я запускаю его внутри тестовой схемы
– palAlaa
17 Мар 2013 в 13:04
Та же проблема с повторением до примера!
– palAlaa
17 Мар 2013 в 13:29
1 ответ
Лучший ответ
У вас есть непрерывный пробел (U + 00A0) сразу после имени переменной в следующей строке:
WHILE cnt < 10 DO
^--- this is U+00A0
MySQL не распознает такие символы как пробелы, а скорее как часть имени переменной.
2
eggyal
17 Мар 2013 в 18:52
Невероятная проблема и невероятное решение проблем. Спасибо миллион
– palAlaa
18 Мар 2013 в 14:36
Похожие вопросы
Новые вопросы
mysql
MySQL — это бесплатная система управления реляционными базами данных (RDBMS) с открытым исходным кодом, которая использует язык структурированных запросов (SQL). НЕ ИСПОЛЬЗУЙТЕ этот тег для других БД, таких как SQL Server, SQLite и т. д. Это разные БД, которые используют свои собственные диалекты SQL для управления данными.