Я пытаюсь создать несколько триггеров для моих таблиц MySQL, чтобы отслеживать изменения.Я думал о таблице типа
CREATE TABLE IF NOT EXISTS `contacts_changes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`action` enum('insert','update','delete') NOT NULL,
`contact_id` int(6) NOT NULL,
`changes` text NOT NULL,
PRIMARY KEY (`id`)
);
, где contact_id - это внешний ключ к таблице, которую я хочу отслеживать, а в изменениях столбцов я хочу сохранить изменения, сделанные в формате JSON.
Поэтому, если я изменю фамилию и день рождения записи в таблице контактов, столбец изменений должен содержать {"familyname": "Smith", "birthday": "1982-06-24}
.
. Я нашел много примеров использования триггеров для отслеживания изменений, но ни один из них не суммирует сделанные измененияв одном столбце одной строки.Что они делают, это вставляют новую строку для каждого внесенного изменения, то есть одну строку для изменения дня рождения, а другую - для изменения фамилии.
Из-за недостатка знаний языка (My) SQL я не смогВыясните, возможно ли сделать что-то, что я имел в виду, и если это так, как это можно сделать.
Есть идеи или советы, как это решить?
Спасибо!
Редактировать: Опубликовано прежнее редактирование в качестве ответа.