В триггере вставки нет "старого" ... потому что вы вставляете строку, а не обновляете ее.Предыдущей версии строки не существует, потому что ее никогда не было.Вы можете просто использовать Department_id во вновь созданной строке, используя вместо этого new
.И вам не нужен if
, потому что не с чем сравнивать:
delimiter $$
create trigger employee_insertion_in_individual_department
after insert on employees for each row begin
update departments set total_employees=total_employees+1
where department_id=new.department_id;
end$$ delimiter ;
См. Также Как получить вставленное значение для триггера
PS Это можетбыло бы безопаснее обновить это, используя количество фактических строк, а не простое приращение.Я волнуюсь, что это может измениться, если множество строк будет изменено почти одновременно.Возможно, стоит проверить, вызывает ли это проблемы или нет.
PPS Я предполагаю, что вы также планируете добавить триггеры UPDATE и DELETE для той же цели, если вы этого еще не сделали.