2011-06-02 10 views
0

У меня есть таблица, которая представляет запись пользователя:SQL - вставить и ограничить количество записей

User_ID | Entry_ID 

Теперь я хочу, чтобы хранить только последние 20 записей (например).

Что было бы лучшим способом вставить новые записи, сохраняя максимальное количество записей на пользователя на 20 (новые записи будут заменять самые старые записи)?

мне нужно, чтобы иметь возможность вставить также список элементов, чтобы заменить старые (если это возможно, чтобы избежать нескольких запросов SQL)

+0

Почему вы не вызываете процедуру хранения, в этом SP удаляете старые записи и вставляете новые. Какие СУБД вы используете? –

+0

Я использую SQLite –

+1

Если у пользователя есть 17 записей и нужно добавить 4 новых ввода, как вы выбираете, какой из 17 удаляется? Подсказка: вам нужна следующая колонка ('effective_date',' sequence_number'), которая уникальна для каждой записи для каждого пользователя. – onedaywhen

ответ

4

Похоже, работа для trigger ...

Добавить уровень инструкции после триггера вставки, который удаляет строки, такие как:

delete from yourtbl 
where yourid not in (
    select yourid from yourtbl order by yourid desc limit 20 
) 
Смежные вопросы