Изменения запроса MySQL в столбце таблицы

#mysql

#mysql

Вопрос:

В моей базе данных есть большая таблица, где мне нужно отслеживать изменения в столбце (serial и date). Другими словами, отслеживайте, какая дата серийного номера изменилась. Это структура:

 pvs
-----

- id (int increment)
- serial (varchar)
- pos_id (int)
- fecha (datetime)
  

Pos_id — это местоположение, поэтому оно тоже имеет значение.

Запрос к этой таблице

Я думаю, я мог бы использовать PL, но это уже медленно, поскольку просто запрашивать информацию без какой-либо фильтрации.

Редактировать:

Я загружаю файлы Excel в базу данных, которые соответствуют дате, поэтому решение «при обновлении» для меня неосуществимо.

Когда я говорю «изменения в столбце», я имею в виду изменения в столбце «Serial».

ПРАВКА 2:

Как вы можете видеть, есть четыре столбца, и столбец «serial» является повторяющимся. Наблюдение заключается в том, что этот столбец изменяется со временем для этого pos_id (он представляет установленное устройство, и они выходят из строя и т.д.), Поэтому Мне нужно получить строки, в которых происходят изменения. Например, на рисунке давайте предположим, что позже в id 2900000 serial изменится другой код, например, 312555654. Запись будет:

 id | serial | pos_id | fecha
2900000 | 312555654 | 5 | 2018-04-25 00:00:00
  

Итак, мне нужно получить все эти изменения в одном запросе и таким образом обновить другие таблицы. Если это возможно. Я мог бы использовать pos_id в качестве параметра.

Комментарии:

1. вы можете добавить столбец со значением по умолчанию «при обновлении текущей метки времени», чтобы каждый раз, когда вы обновляете строку, значение обновлялось вместе с меткой времени изменения

2. Это круто, и поскольку я использую Laravel, у меня это уже есть, но дело в том, что эти даты указаны в отчете, они отражают прошлые даты, а не момент, когда они физически обновлены.

3. используйте mysql binlog

4. ваш комментарий имеет мало смысла для меня. Если только вы не говорите о «audi trail». Это совершенно другая история и требует настройки таблицы журнала аудита

5. Если вы загружаете данные с помощью Excel, то вам, вероятно, нужно решить эту проблему во время импорта. Мы пока не знаем, как вы обновляете свои данные — вам нужно будет добавить эту соответствующую информацию, чтобы мы могли помочь вам с этим.

Ответ №1:

Я придумал ответ немного позже:

 SELECT min(id), SERIAL, pos_id, MIN(fecha)
FROM pvs 
GROUP BY SERIAL, pos_id
ORDER BY MIN(fecha) DESC;
  

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