Здравствуйте.
Подскажите, пожалуйста, возможно ли создать триггер на вставку новой строки, который следил бы за обновлением одной строки отсортированной по дате добавления в определённой колонке и срабатывал бы только тогда, когда значение этой колонки равнялось бы к примеру 5.
Грубо говоря следил бы за таким запросом:
SELECT * FROM `testtable` WHERE `checkCol` = 4 ORDER BY createdAt DESC LIMIT 1
И когда checkCol обновится с 4 до 5, сработал бы триггер на вставку такого запроса:
INSERT INTO `testtable` (`id`, `checkCol`, `someData`, `createdAt`) VALUES (NULL, '1', 'data 4', current_timestamp());
Пример схемы и данных:
CREATE TABLE IF NOT EXISTS `testtable` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`checkCol` tinyint(1) NOT NULL,
`someData` varchar(255) DEFAULT NULL,
`createdAt` timestamp NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
INSERT INTO `testtable` (`id`, `checkCol`, `someData`, `createdAt`) VALUES
(1, 5, 'data1', '2020-08-28 14:24:15'),
(2, 4, 'data2', '2020-08-28 14:24:25'),
(3, 4, 'data3', '2020-08-28 14:24:35');