Неизвестный столбец в исполнении MySQLTrigger - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть этот триггер без синтаксических ошибок, работающих на моей БД:

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.

1 Ответ

0 голосов
/ 18 февраля 2020

Хорошо, я вижу свою ошибку. Извините, что беспокою вас. ЕСЛИ minValue должно быть ЕСЛИ val

MySQL компилирует его без ошибок.

Извините и спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...