У меня есть таблица Oracle, которая содержит сообщения журнала событий для приложения. Мы не хотим, чтобы эта таблица вышла из-под контроля и заняла слишком много места, поэтому мы хотели бы ограничить число строк, которые она может содержать, до некоторого большого числа, например, миллиона.
Итак, мы хотели бы сообщить Oracle, что когда таблица становится слишком большой, ей следует удалить самые старые строки, чтобы освободить место для новых строк.
Есть ли способ сделать это? Я полагаю, что мы могли бы сделать это с помощью триггера или сделать все вставки с помощью хранимой процедуры, но есть ли что-нибудь проще?
РЕДАКТИРОВАТЬ: В нескольких ответах были предложены решения с участием разделов. В настоящее время мы не разделяем эту таблицу, хотя у нас есть возможность сделать это при необходимости. Однако, глядя на этот вопрос, кажется, что даже если мы разделим таблицу, нам все равно понадобится какое-то запланированное задание, чтобы удалить старые разделы и т. Д. Поэтому мы решили отказаться от разделов в пользу запланированное задание для проверки количества строк и удаления старых строк по мере необходимости один раз в день.
Спасибо всем за помощь.