Najprostszym sposobem jest dodanie kolumny z wartością null typu TIMESTAMP z wyzwalaczem:ON UPDATE CURRENT_TIMESTAMP .
Dlatego wstawki nie zmienią się, ponieważ kolumna akceptuje wartości null, a możesz wybrać tylko nowe i zmienione kolumny, mówiąc:
SELECT * FROM `table` WHERE `mdate` > '2011-12-21 12:31:22'
Za każdym razem, gdy aktualizujesz wiersz, ta kolumna zmienia się automatycznie.
Oto kilka dodatkowych informacji:http://dev.mysql.com /doc/refman/5.0/en/timestamp.html
Aby zobaczyć usunięte wiersze, po prostu utwórz wyzwalacz, który będzie rejestrował każde usunięcie w innej tabeli:
DELIMITER $$
CREATE TRIGGER MyTable_Trigger
AFTER DELETE ON MyTable
FOR EACH ROW
BEGIN
INSERT INTO MyTable_Deleted VALUES(OLD.id, NOW());
END$$