Мне нужно обновить столбец в таблице после вставки значений.
Я сделал триггер, который после вставки делает это:
DELIMITER ;;
CREATE TRIGGER `work_ai` AFTER INSERT ON `work` FOR EACH ROW
BEGIN
UPDATE work w SET w.time_sum = new.time_sum WHERE w.id = new.id;
END;;
DELIMITER ;
Но я не могу заставить его работать .. и я нене знаю, что я делаю неправильно: /
Схема таблицы выглядит так:
DROP TABLE IF EXISTS `work`;
CREATE TABLE `work` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`admin_id` int(11) unsigned NOT NULL,
`task_id` int(11) DEFAULT NULL,
`client_id` int(11) DEFAULT NULL,
`type` enum('job','break','lunch') NOT NULL DEFAULT 'job',
`from` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`to` datetime DEFAULT NULL,
`comment` varchar(255) DEFAULT NULL,
`invoice` time DEFAULT NULL,
`rate` int(11) NOT NULL DEFAULT '800',
`locked` tinyint(1) DEFAULT '0',
`time_sum` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `admin_id` (`admin_id`),
KEY `task_id` (`task_id`),
KEY `client_id` (`client_id`),
CONSTRAINT `work_ibfk_1` FOREIGN KEY (`admin_id`) REFERENCES `admins` (`id`),
CONSTRAINT `work_ibfk_2` FOREIGN KEY (`task_id`) REFERENCES `tasks` (`id`),
CONSTRAINT `work_ibfk_3` FOREIGN KEY (`client_id`) REFERENCES `clients` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Пример данных: to
= 2019-01-08 10:45:00 from
= 2019-01-08 09:15:00, и результат будет 01: 30: 00