Синтаксическая ошибка не понятно в чем

117
22 марта 2021, 00:10

Вот пример процедуры , написанной в MYSQL WORKBENCH версии 8.0. Но уже на строке 3 возникает ошибка "unexpected end of input found , expecting ;" Не могу понять, что не так. Знак ";" и ставил и убирал.

CREATE PROCEDURE TEST()
BEGIN
 DECLARE test_id, last_id, i INT;
SET @TEST_ID = 1 -- start compare with this ID 
SET @LAST_ID = 100 -- end compare with this ID
WHILE @TEST_ID <= @LAST_ID 
 BEGIN 
  SELECT @ID = (SELECT chip_number FROM chip_db WHERE chip_number = @TEST_ID) 
  IF @ID IS NULL 
  BEGIN 
    PRINT 'Missing ID: ' + CAST(@TEST_ID AS VARCHAR(10)) 
  END 
  SET @TEST_ID = @TEST_ID + 1 
 END
END;
Answer 1

Вам нужно переопределить delimeter:

DELIMITER $$
CREATE PROCEDURE TEST()
BEGIN
DECLARE test_id , last_id, i INT;
SET @TEST_ID = 1; -- start compare with this ID 
SET @LAST_ID = 100; -- end compare with this ID
WHILE @TEST_ID <= @LAST_ID 
 DO 
  SELECT @ID = (SELECT chip_number FROM chip_db WHERE chip_number = @TEST_ID);
  IF @ID IS NULL THEN
  BEGIN 
    SELECT concat('Missing ID: ', @TEST_ID);
  END;
  end if;
  SET @TEST_ID = @TEST_ID + 1;
 END WHILE;
END$$

Обратите внимание, насколько я знаю, в mysql print отсутствует, хотя с новыми версиями я не работал, в старых нужно было использовать select.

READ ALSO
Как записать JSON в MySQL

Как записать JSON в MySQL

Пробую записать JSON в MySql, но не получается из-за слэшей и кавычек которые находятся в JSON'неКак можно сделать?

122
MySql При записи изменяются слэши

MySql При записи изменяются слэши

У меня есть данные с такими подобного вида \/dad\/\/ddad после записи в MySql

88
Письмо не приходит на почтовый ящик

Письмо не приходит на почтовый ящик

На хостинге заказал услугу электронной почтыСоздал ящик support@mydomain

92
Пустой ответ в sql-запросе через PHP PDO

Пустой ответ в sql-запросе через PHP PDO

Пытаюсь выполнить запрос через PDO, ответ пустойХотя сам по себе запрос корректный

78