Вы не можете сделать это непосредственно в базе данных.Вы можете сделать это, запланировав событие или задание, которое выполняет удаление.Вы можете запланировать событие для каждого удаления.
Я думаю, что лучшим подходом, однако, является использование представления:
create view v_t as
select t.*
from t
where expiration_date > now();
Это гарантирует, что строка не будет доступна в тот момент, когдаСрок годности больше не в будущем.Затем вы можете удалить строки на досуге.Удаление строк может создать нагрузку на базу данных, поэтому вы можете подождать, пока нагрузка не станет меньше.