Как найти недавно измененную строку в таблицах базы данных MySQL? - PullRequest
0 голосов
/ 11 марта 2020

У меня база данных MySQL (employee) состоит из 5 таблиц. Как найти недавно измененную строку по имени столбца id в таблицах?

Я попытался найти таблицу, используя приведенную ниже кодировку. Это работает нормально.

USE
    information_schema;
SELECT DISTINCT TABLE_NAME
FROM TABLES
WHERE
    UPDATE_TIME IS NOT NULL AND UPDATE_TIME < NOW() AND TABLE_SCHEMA = 'employee'

Пожалуйста, помогите найти строку по имени столбца id (все таблицы имеют это имя столбца в качестве идентификатора) в этой таблице.

1 Ответ

0 голосов
/ 11 марта 2020

Я думаю, что решение этой проблемы - создать триггер, который вставит запись в другую таблицу

CREATE TABLE `table_row_monitor` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tbl` varchar(100) DEFAULT NULL,
  `col` varchar(100) DEFAULT NULL,
  `val` int,
  `dtecreated` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`process_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

   DROP TRIGGER IF EXISTS chk_pickup_contact_for_delivery;
   DELIMITER $$

   CREATE TRIGGER `[table_name]_log_row_insert` AFTER INSERT ON `[table_name]` FOR EACH ROW
   BEGIN

     INSERT INTO table_row_monitor (tbl, col, val)
     SELECT '[table_name]', 'id', MAX(id) FROM `[table_name]`;

   END$$
   DELIMITER ;

, просто заменив [table_name]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...