Пожалуйста, подскажите, есть ли в PHP или в мускуле какая-то готовая / встроенная функция отслеживания изменений в определенной колонке таблицы? Есть база товаров — названия, цены, etc. Данные обновляются в таблице постоянно, отслеживать по дате изменения не вариант. Нужно вызывать определенный скрипт, если значение в поределенных колонках изменено. Нагуглил только mysql_affected_rows, но это не вариант, там в результате возвращает, что изменились все строки. Понимаю про проверку вроде Код (Text): новое_значение != старое_значение , но она будет занимать довольно значительное время, поэтому решил сначала спросить совета опытных.
Ну то есть ничего готового нет. Тогда нет смысла городить журнал, все равно придется прикручивать проверку на изменение. Жаль, жаль.
вообще непонятная постановка вопроса. что значит изменение столбца? В БД есть таблицы, строки и поля. Допустим вы столбцами называете конкретное поле в таблице .... что в вашем понимании - отслеживание изменений? ведь строк много.... вы лучше скажите по человесески - какая задача стоит и вам способ подскажут, а то вы думаете что это вот так - и спрашиваете совсем другое. P.S. подозреваю что вопрос идет об отслеживании операции update, и вам можно использовать триггеры в БД
Почему? Только дата без времени или что? В общем, если при апдэйтах время не используется/не меняется, тогда триггеры, как выше написали! --- Добавлено --- Ну, или добавить поле с временем/обновлять его.
ОК, согласен, поясняю. В таблице хранятся данные о товарах. UPDATE происходит не реже раза в минуту. Мне нужно вызывать некую функцию только в том случае, если у товара изменилось поле "название", "цена", "цена распродажи" или "складской статус". То есть если при обновлении значение поля != старому значению поля.
Эта функция на PHP? Добавь в систему "события" и "слушателей", то есть некий аналог триггеров в базе, только не в базе. ))) https://refactoring.guru/ru/design-patterns/observer Ещё есть паттерн Event Sourcing, где все действия в т.ч. изменение товаров рассматриваются как поток событий. Что-то вроде лога. В этот поток события только добавляются, они не подлежат изменению. А дополнительно к этому потоку могут быть "проекции", которые строят данные на базе событий. Например строится запись в products. При таком подходе потенциально возможно составить картину на любой момент времени, заново создать товары, если понадобится. https://habr.com/ru/post/178259/