Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL - Il modo più veloce per verificare se i dati nella tabella InnoDB sono cambiati

Il modo più semplice è aggiungere una colonna nullable con tipo TIMESTAMP, con il trigger:ON UPDATE CURRENT_TIMESTAMP .

Pertanto, gli inserimenti non cambieranno perché la colonna accetta valori null e puoi selezionare solo le colonne nuove e modificate dicendo:

SELECT * FROM `table` WHERE `mdate` > '2011-12-21 12:31:22'

Ogni volta che aggiorni una riga, questa colonna cambierà automaticamente.

Ecco alcune ulteriori informazioni:http://dev.mysql.com /doc/refman/5.0/en/timestamp.html

Per vedere le righe eliminate, crea semplicemente un trigger che registrerà ogni eliminazione in un'altra tabella:

DELIMITER $$
CREATE TRIGGER MyTable_Trigger
AFTER DELETE ON MyTable
FOR EACH ROW
BEGIN
    INSERT INTO MyTable_Deleted VALUES(OLD.id, NOW());
END$$