имеют две таблицы Очередь (назначение / фактическое время) Queue_Summary (дата, doctor_id, num_of_patients)
Первая - это все очереди, а вторая - сколько очередей для каждого врача на определенную дату. Мне нужно создать триггер, который обновляет num_of_patients, каждый раз, когда в очереди добавляется очередь, мне нужно добавить к врачу num_of_patients в эту дату. Также при удалении.
Я только что посчитал количество очередей с данными doctor_id и date, разделил его на два триггера. Но единственная проблема, с которой я сталкиваюсь, - это где я размещаю оператор if, который проверяет, находится ли эта дата в Queue_Summary, а если нет, добавляет ее.
(PS - я не 100% на те, так как моя база данных немного выключен и делает кучу проблем, если есть какие-то проблемы в этих отчетах, я буду рад их узнать)
delimiter //
CREATE TRIGGER update_queue_summary
AFTER DELETE ON queue
FOR EACH ROW
BEGIN
update queue_summary as qs set num_of_patient = (
select count(appointment_id)
from queue as q join appointment as a on appointment_id
where a.doctor_id=qs.doctor_id and date(qs.actual_time)=date(qs.date())
group by appointment_id
) where doctor_id=qs.doctor_id and date(qs.actual_time)=date(qs.date());
END;//
delimiter ;
delimiter //
CREATE TRIGGER update_queue_summary
AFTER insert ON queue
FOR EACH ROW
BEGIN
update queue_summary as qs set num_of_patient = (
select count(appointment_id)
from queue as q join appointment as a on appointment_id
where a.doctor_id=qs.doctor_id and date(qs.actual_time)=date(qs.date())
group by appointment_id
) where doctor_id=qs.doctor_id and date(qs.actual_time)=date(qs.date());
END;//
delimiter ;