Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL - Най-бързият начин да проверите дали данните в таблицата InnoDB са се променили

Най-простият начин е да добавите колона с нула с тип TIMESTAMP с тригера:ON UPDATE CURRENT_TIMESTAMP .

Следователно вмъкванията няма да се променят, защото колоната приема нулеви стойности и можете да изберете само нови и променени колони, като кажете:

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

Всеки път, когато актуализирате ред, тази колона ще се променя автоматично.

Ето още малко информация:http://dev.mysql.com /doc/refman/5.0/en/timestamp.html

За да видите изтритите редове, просто създайте тригер, който ще регистрира всяко изтриване в друга таблица:

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. Промяна на генерираното име на външен ключ в Hibernate

  2. Изключение в основната нишка java.sql.SQLException:Достъпът е отказан за потребител ''@'localhost' (използвайки парола:НЕ)

  3. MySQL „Отрязана неправилна INTEGER стойност“

  4. Надстройката от Django 1.6 (с юг) до 1.8 не променя 'last_login' в потребителската таблица

  5. Как работи Hibernate Batch insert?