Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL - Najszybszy sposób na sprawdzenie, czy dane w tabeli InnoDB uległy zmianie

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$$


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. zestaw znaków php mysql:przechowywanie html międzynarodowej zawartości

  2. MySQL:Jak mogę uzyskać znacznik czasu ostatniego wstawienia do bazy danych?

  3. Jakie znaczenie ma znak zapytania w MySQL w kolumnie WHERE =??

  4. Prawdziwy max_execution_time dla PHP na Linuksie

  5. Jak uzyskać ostatni dzień miesiąca w mysql, podając miesiąc i rok jako dane wejściowe?