MySQL Разница между двумя последними рядами - PullRequest
0 голосов
/ 17 января 2020

У меня есть простая таблица mysql с тремя столбцами: ID (автоинкремент), Value (число с плавающей точкой) и разница (число с плавающей точкой). Каждые 5 секунд вставляется новая строка с добавлением значения и значения NULL в столбце различий.

Я хочу настроить хранимую процедуру, которая запускается автоматически при вставке новой строки, которая заполняет столбец «разности» новая запись (запись n) с разницей между значением записи n и значением (n-1) записи.

Таким образом, каждая новая строка (n) разницы столбцов будет иметь значение (n) -значение (n -1).

Не могли бы вы помочь мне написать хранимую процедуру?

1 Ответ

0 голосов
/ 17 января 2020

Вам нужно создать триггер ON перед вставкой в ​​таблицу:

CREATE DEFINER=`root`@`localhost` TRIGGER `tablename_BEFORE_INSERT` 
BEFORE INSERT ON `tablename` FOR EACH ROW BEGIN
    DECLARE old_value FLOAT;

    SELECT value INTO old_value FROM tablename ORDER BY id DESC LIMIT 1; 
    SET NEW.diff = NEW.value - old_value;
END;
...