У меня есть этот триггер без синтаксических ошибок, работающих на моей БД:
DROP TRIGGER IF EXISTS image_demand;
DELIMITER //
CREATE TRIGGER image_demand BEFORE INSERT ON demand_img
FOR EACH ROW
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE val DATE DEFAULT NULL;
DECLARE minValue CURSOR FOR SELECT min(date_demand) AS RES FROM demand_img;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN minValue;
read_loop : LOOP
FETCH minValue INTO val;
IF done THEN
LEAVE read_loop;
END IF;
END LOOP;
CLOSE minValue;
IF minValue IS NOT NULL THEN
SET NEW.date_demand = val + INTERVAL 1 HOUR;
END IF;
END //
Он пытается добавить 1 час из минимального значения, уже установленного в базе данных, в новый регистр, который собирается вставить. Но когда я пытаюсь вставить новый компонент image_demand с помощью команды INSERT, происходит сбой с этой ошибкой:
18:16:40 INSERT INTO `database`.`demand_img` (USER_ID_FK, IMG_ID) VALUES (2, 'asdfasdfasdfa')
Error Code: 1054. Unknown column 'minValue' in 'field list' 0.000 sec
Как видите, minValue - это переменная, которая поступает из Trigger , так что я думаю, что ошибка от этого, но я не вижу, где это. Может быть, я неправильно устанавливаю minValue?
Спасибо за помощь
J.