Структура моей таблицы:
id id_pp id_a id_u fecha_accion tiempo
25 6 2 6 2018-07-06 11:53:44 NULL
26 6 3 3 2018-07-06 12:11:13 NULL
59 6 2 6 2018-07-10 10:37:28 NULL
63 6 3 3 2018-07-10 11:03:49 NULL
64 6 5 3 2018-07-10 11:03:56 NULL
65 6 7 3 2018-07-10 11:04:05 NULL
66 6 6 3 2018-07-10 11:04:08 NULL
67 6 8 3 2018-07-10 11:04:13 NULL
68 6 9 3 2018-07-10 11:04:21 NULL
примечание: fecha_accion это отметка времени.
И я хочу обновить предыдущие строки с помощью триггера, но не могу, есть идеи?
ПУСК:
DROP TRIGGER IF EXISTS vtas_historial_acciones_BEFORE_INSERT;
DELIMITER //
CREATE TRIGGER `vtas_historial_acciones_BEFORE_INSERT` BEFORE INSERT ON vtas_historial_acciones
FOR EACH ROW
BEGIN
SET @id = (select id from vtas_historial_acciones where id_pp = new.id_pp order by id desc limit 1);
SET @fecha = (select fecha_accion from vtas_historial_acciones where id_pp = new.id_pp order by id desc limit 1);
UPDATE vtas_historial_acciones SET `tiempo` = TIMESTAMPDIFF(HOUR,@fecha_accion,NOW()) where id = @id;
END; //
DELIMITER ;
ОШИБКА:
1442 - Невозможно обновить таблицу 'vtas_historial_acciones' в сохраненной функции / триггере, поскольку она уже используется оператором, который вызвал эту сохраненную функцию / триггер.