Триггеры - Как изменить другой столбец, когда один обновляется - MySQL - PullRequest
1 голос
/ 27 мая 2019

Мне дали вариант использования, когда пользователю необходимо обновить определенное поле TIME, если изменилось другое поле того же типа.

Мне дали два столбца

horario_arribo (ВРЕМЯ)

horario_salida (ВРЕМЯ)

Теперь мне нужно выполнить следующие действия:

Сделать триггер так,например, когда я изменяю horario_arribo , horario_salida - это то же самое время, что и horario_arribo минус 1 час, и то же самое, если я обновляю horario_salida ,make horario_arribo плюс 1 час.

Я думал, как это сделать, сначала проверим, является ли значение, которое пытается обновить, horario_salida , затем я просто добавляю 1час до horario_arribo , или если я обновляю horario_arribo , до того же horario_salida , но минус 1 час.

DELIMITER //
CREATE TRIGGER modificar_horarioruta AFTER
UPDATE ON ruta
FOR EACH ROW
BEGIN
IF(new.horario_salida) THEN
  SET AddTime(old.horario_arribo, '00:60:00')
ELSE
  SET AddTime(old.horario_salida, Here I dont know how to minus 1 hour to that)
END IF;
END //
DELIMITER ;

Этоэто данные, которые у меня есть

enter image description here

Короче говоря, если я обновлю horario_salida , horario_arribo должен быть на 1 час вперед, если я обновлю horario_arribo , horario_salida должен быть на 1 час меньше.

Спасибо

1 Ответ

1 голос
/ 31 мая 2019

IIUC:

DELIMITER //
CREATE TRIGGER modificar_horarioruta AFTER
UPDATE ON ruta
FOR EACH ROW
BEGIN
IF (NEW.horario_salida) THEN
  SET NEW.horario_arribo = OLD.horario_arribo + 1;
ELSE
  SET NEW.horario_salida = OLD.horario_salida - 1;
END IF;
END //
DELIMITER ;

Дайте мне знать, если это не то, что вам нужно.

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