Здравствуйте, есть таблица внутри которой есть поле типа DATETIME. Необходимо, чтобы при добавлении новых записей в нее - удалялись все старые (старше 2х дней) записи из данной таблицы и соседней.
Содержимое триггера before insert schedule_personnel:
delete from schedule_personnel where datediff(now(), schedule_personnel.`end`) > 2;
delete from schedule_patients where datediff(now(), schedule_patients.`time`) > 2;
В данном виде триггер не работает.
Can't update table 'schedule_personnel' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
Если закомментировать часть где удаляются записи в той же таблице, что и вызывает триггер - то это срабатывает. Т.е. при срабатывании на добавление можно удалять из чужих таблиц, а из своих нельзя.
delete from schedule_patients where datediff(now(), schedule_patients.`time`) > 2;
Если в триггере сработавшем на добавление производится удаление строки, то вроде никаких дополнительных срабатываний этого же триггера не должно быть.
Вопрос: Как удалить строки в триггере на добавление для той же таблицы что и вызвала триггер?