Ошибка в запросе - MySQL (220102)

Узнай цену своей работы

Формулировка задачи:

Всем привет! Написал процедуру, но синтаксис не валидируется... а понять, в чем проблема не могу... кто поможет, буду признателен)
Листинг программы
  1. CREATE PROCEDURE calculate_precisions
  2. (
  3. IN distribution VARCHAR(45),
  4. IN PRECISION VARCHAR(45),
  5. IN total_schedules INT,
  6. IN destination VARCHAR(100)
  7. )
  8. BEGIN
  9. SET @distribution = distribution;
  10. SET @PRECISION = PRECISION;
  11. SET @total_schedules = total_schedules;
  12. SET @destination = destination;
  13. .......
  14. END
Листинг программы
  1. 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 'precision VARCHAR(45),
  2. IN total_schedules INT,
  3. IN destination VARCHAR(10' at line 4

Решение задачи: «Ошибка в запросе»

textual
Листинг программы
  1. SET @query = CONCAT
  2.   (
  3.     'INSERT INTO ',
  4.     destination,
  5.     '(processing_date, 0_25, 0_25_share, 25_50, 25_50_share, 50_75, 50_75_share, 75_100, 75_100_share) VALUES (CURDATE(), @0_25, @share_0_25, @25_50, @share_25_50, @50_75, @share_50_75, @75_100, @share_75_100)'
  6.   );
  7.  
  8. PREPARE stmt FROM @query;
  9. EXECUTE stmt;

Объяснение кода листинга программы

  1. Создается переменная query, которая получает значение, сконкатенированное из нескольких строк.
  2. В переменной query формируется строка SQL-запроса.
  3. Строка запроса содержит INSERT INTO ... VALUES (CURDATE(), @0_25, @share_0_25, @25_50, @share_25_50, @50_75, @share_50_75, @75_100, @share_75_100).
  4. Выполняется запрос с помощью EXECUTE stmt;.
  5. Для подготовки запроса используется PREPARE stmt FROM @query;.
  6. В запросе используется CURDATE(), чтобы вставить текущую дату в таблицу.
  7. В запросе используются переменные @0_25, @share_0_25, @25_50, @share_25_50, @50_75, @share_50_75, @75_100, @share_75_100, которые должны быть определены или установлены в значения до выполнения запроса.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут