> которые разрешат/запретят выполнение запроса.
и оставлять зависшей транзакцию с полной блокировкой таблицы? ну такое себе.
Я бы сделал через триггеры(для операции транкейт не помню, можно ли в Mysql создать триггер, но для удаления точно прокатит).
По триггеру удаления, делается бекап старых сданных методом копирования в другую таблицу + можно сделать вставку в таблицу для бота, с которой он будет понимать что нужно отправить сообщение про то что произошло нужное событие. ну а там уже по факту сообщения, можно будет понимать какие данные были удалены, нужно ли их восстанаввать, да логирование какое ни какое.
но тут не стоит забывать что триггера это доп нагрузка на базу+могут быть ньюансы