@yonshou

Как установить максимальное количество строк в таблице?

Как установить максимальное количество строк по такому правилу: при достижении 1000 строк, удалить последнюю строку (по дате) что бы записать свежую.
  • Вопрос задан
  • 139 просмотров
Пригласить эксперта
Ответы на вопрос 3
meusov11
@meusov11
Триггер использовать надо. Пример:

CREATE TRIGGER limit_rows_trigger
AFTER INSERT ON your_table
FOR EACH ROW
BEGIN
    DECLARE row_count INT;
    
    SELECT COUNT(*) INTO row_count FROM your_table;
    
    IF row_count > 500 THEN
        DELETE FROM your_table
        ORDER BY created_at
        LIMIT 1;
    END IF;
END//
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
По постановке это похоже на буфер очереди сообщений. Вам нет смысла синхронно удалять хвостовые строки.с
Пускай это делает отдельный джоб раз в сутки например. Вам - же не принципиально если пол дня табличка будет в 1001 строку?

А консистентный снимок top 1000 строк вы всегда можете получить запросом с сортировкой и лимитом. И это будет решение в духе баз данных а не Java-буферов с блокировками.
Ответ написан
@Akina
Сетевой и системный админ, SQL-программист.
Демонстрация метода замены вставки на обновление: fiddle.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы