Как исправить ошибку «Undeclared variable: NEW» в Триггере?

Пытаюсь записать триггер TEST4_B в dbForge для работы с Nest set деревом по этому примеру. Процедуру успешно сделал, а на триггере завис, когда компилю выбивает ошибку: Undeclared variable: NEW .
Вот код этого триггера:
CREATE 
	DEFINER = 'root'@'%'
TRIGGER hierarchy.test4_bi
	BEFORE INSERT
	ON test4
	FOR EACH ROW
BEGIN
IF (NEW.parent_id IS NULL) THEN
    BEGIN
      set NEW.lb = NULL;
      SELECT MAX(rb) FROM test4 INTO NEW.lb;
      SELECT NEW.lb;
      IF (NEW.lb IS NULL) THEN
        set NEW.lb = 1;
      ELSE
        set NEW.lb = NEW.lb + 1;
      END IF;
    END; 
    ELSE
      BEGIN
        CALL el_test4(NEW.parent_id, 1, -1, -1, @left);
        set NEW.lb = @left;
      END;
    END IF;
  SELECT NEW.lb;
  set NEW.rb = NEW.lb;
END

>Код таблицы:
CREATE TABLE hierarchy.test4 (
  id int(11) NOT NULL,
  parent_id int(11) DEFAULT NULL,
  lb int(11) NOT NULL,
  rb int(11) NOT NULL,
  name varchar(150) NOT NULL,
  PRIMARY KEY (id),
  INDEX test4_x_lb (lb),
  INDEX test4_x_rb (rb),
  CONSTRAINT test4_ibfk_1 FOREIGN KEY (parent_id)
  REFERENCES hierarchy.test4 (id) ON DELETE CASCADE ON UPDATE CASCADE
)
ENGINE = INNODB
AVG_ROW_LENGTH = 1820
CHARACTER SET utf8
COLLATE utf8_general_ci;
  • Вопрос задан
  • 302 просмотра
Решения вопроса 1
@Fortop
Tech/Team lead
Использовать в запросах переменную
И записывать в NEW.field из переменной
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы