Есть таблица консультаций
CREATE TABLE `consultation` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`date_admission` timestamp NULL DEFAULT NULL,
`duration` time DEFAULT NULL,
`recomendation` text,
`patient_id` int(11) DEFAULT NULL,
`personal_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
Таблица статистики
CREATE TABLE `statistic` (
`personal_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`consultation_count` int(11) DEFAULT NULL,
`total_time_consultation` time DEFAULT NULL,
`pacient_count` int(11) DEFAULT NULL,
PRIMARY KEY (`personal_id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
Создаю тригер, который при вставке в таблицу консультаций обновляет статистику, но почему-то не работает
DELIMITER //
CREATE TRIGGER consultation_insert AFTER INSERT ON `hospital`.`consultation`
FOR EACH ROW
BEGIN
SET @pacient_count = doctor_patient_count(NEW.personal_id);
INSERT INTO `hospital`.`statistic` (id,consultation_count,total_time_consultation,pacient_count,personal_id) VALUES(NULL,1,NEW.duration,@pacient_count,NEW.personal_id)
ON DUPLICATE KEY
UPDATE consultation_count = consultation_count + 1 AND total_time_consultation = ADDTIME(total_time_consultation, NEW.duration) AND pacient_count = @pacient_count;
END //
Отредактированно like2dev (09.05.2012 18:30:54)