Триггер ли нужен или что-то другое - MySQL

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Вот гуглю уже несколько дней и понять не могу что мне подойдет. Дело вот в чем есть база статистики игрового сервера. В которой производится запись измененной статистики по разным параметрам. Для создания графика изменения статистики мне нужна история изменений, но данные в базе перезаписываются. Теперь сам вопрос как мне сделать историю изменений в базе ?

Решение задачи: «Триггер ли нужен или что-то другое»

textual
Листинг программы
create table test(id int, name varchar(100));
create table test1 (id int, name varchar(100), dd datetime);
 
delimiter//
CREATE TRIGGER `History` AFTER UPDATE ON `test`
FOR EACH ROW BEGIN
INSERT INTO `test1` (id, name, dd) VALUES(NEW.ID, NEW.name, now());
END//
 
insert into test values(1, 'vova');
update test set name= 'vova2' where id=1;
MariaDB [test]> select * from test1;
+------+-------+---------------------+
| id   | name  | dd                  |
+------+-------+---------------------+
|    1 | vova2 | 2016-04-04 15:30:31 |
+------+-------+---------------------+

Объяснение кода листинга программы

  1. Создается таблица test с двумя столбцами: id и name.
  2. Создается таблица test1 с тремя столбцами: id, name и dd.
  3. Устанавливается разделитель для оператора CREATE TRIGGER и INSERT INTO с помощью команды delimiter //.
  4. Создается триггер History после обновления таблицы test.
  5. Для каждой строки, которую обновляют, выполняется операция INSERT INTO для таблицы test1.
  6. Значения новых полей ID и name берутся из обновленной строки и записываются в таблицу test1.
  7. Значение поля dd устанавливается как текущее время с помощью функции now().
  8. Завершается создание триггера.
  9. Вставляется строка в таблицу test с id равным 1 и name равным 'vova'.
  10. Обновляется строка в таблице test с id равным 1 и name измененным на 'vova2'.
  11. Выполняется запрос select * from test1 и выводятся результаты.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5
Похожие ответы