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

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

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

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

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

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

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы