У меня около 2 лет работы с MySQL, но я впервые изучаю хранимые процедуры, чтобы создать внутренний аналитический инструмент для моего сайта.Я обычно хорошо выслеживаю ошибки SQL, но эта ошибка ускользает от меня.
Я получаю следующую ошибку:
1064 - у вас ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с '' в строке 3
Это код, который я выполняю, чтобы получить эту ошибку:
CREATE PROCEDURE STORE_ANALYTICS (IN chain VARCHAR(300))
BEGIN
UPDATE _analytics_clicks
SET chainCount = (chainCount + 1)
WHERE visitChain = chain;
IF SELECT ROW_COUNT() = 0 THEN
INSERT INTO _analytics_clicks (visitChain, chainCount)
VALUES (chain, 1);
END IF;
END|
Стоит отметить, что перед тем, как выполнить это, я выполнил
DELIMITER |
Структура таблицы, которую я пытаюсь изменить, такова:
chainID int(11) auto_increment
visitChain varchar(300)
chainCount int(11)
Когда я выполняю строку 3Сам заменив visitChain = chain на visitChain = '0' (0 - цепочка тестирования, которую я ввел), команда работает нормально, а chainCount увеличивается.
Любые идеи о том, почему я получаю эту ошибку / хранимую процедуруне создается?
Спасибо, Мэтт
РЕДАКТИРОВАТЬ:
Включен разделитель в команде SQL:
DELIMITER |
CREATE PROCEDURE STORE_ANALYTICS (IN chain VARCHAR(300))
BEGIN
UPDATE _analytics_clicks SET chainCount = (chainCount+1) WHERE visitChain=chain;
IF ROW_COUNT() = 0 THEN
INSERT INTO _analytics_clicks (visitChain, chainCount) VALUES (chain, 1);
END IF;
END|
DELIMITER ;
Дала мне эту ошибку: Фатальная ошибка: Максимальное время выполнения 300 секунд превышено в C: \ wamp \ apps \ phpmyadmin3.2.0.1 \ library \ import \ sql.php в строке 119