sql >> Base de Datos >  >> RDS >> Mysql

MySQL:la forma más rápida de verificar si los datos en la tabla InnoDB han cambiado

La forma más sencilla es agregar una columna anulable con el tipo TIMESTAMP, con el activador:ON UPDATE CURRENT_TIMESTAMP .

Por lo tanto, las inserciones no cambiarán porque la columna acepta valores nulos y solo puede seleccionar columnas nuevas y modificadas diciendo:

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

Cada vez que actualice una fila, esta columna cambiará automáticamente.

Aquí hay más información:http://dev.mysql.com /doc/refman/5.0/en/timestamp.html

Para ver las filas eliminadas, simplemente cree un activador que registre cada eliminación en otra tabla:

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