Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL - Maneira mais rápida de verificar se os dados na tabela InnoDB foram alterados


A maneira mais simples é adicionar uma coluna anulável com o tipo TIMESTAMP, com o gatilho:ON UPDATE CURRENT_TIMESTAMP .

Portanto, as inserções não serão alteradas porque a coluna aceita nulos e você pode selecionar apenas colunas novas e alteradas dizendo:
SELECT * FROM `table` WHERE `mdate` > '2011-12-21 12:31:22'

Toda vez que você atualizar uma linha, esta coluna será alterada automaticamente.

Aqui estão mais algumas informações:http://dev.mysql.com /doc/refman/5.0/en/timestamp.html

Para ver as linhas excluídas, basta criar um gatilho que registrará cada exclusão em outra tabela:
DELIMITER $$
CREATE TRIGGER MyTable_Trigger
AFTER DELETE ON MyTable
FOR EACH ROW
BEGIN
    INSERT INTO MyTable_Deleted VALUES(OLD.id, NOW());
END$$