• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Пара глупых вопросов

  • Автор темы vital
  • Дата начала
V

vital

Итак.
1. В табличке надо хранить последние 1000 записей(по дате, типа 1000 самых новых). => Хотелось бы как-нить при (перед ним?)INSERT INTO обрубать лишние, старые записи. Так можно? Как вообще покрасивше можно?=)
2. 2 таблички. Нужно выбрать из первой те строки, в которых столбец to != ни одному из значений столбца login второй таблички
Типа такого
SELECT * FROM Emails,Private WHERE Emails.to <> Private.login
И обратный запрос выбрать только те, в которых равен.
ПС.
Да-да-да, знаю что хрестоматийный пример, и что в любой книжке.. Но не до того, честно.
 
V

vital

Второй вопрос легко решился с помощью ANY. Напомните мне на будущее, не называть столбец "TO"? хорошо? Я думал, что я корч не могу запрос составить, а оказалось что я корч не все служебные слова выучил..
В силе остается первый вопрос. Как при INSERT'e обрезать лишние старые строки? Не охота в 2 запроса(
 
?

????

может триггер на вставку записей?
 
V

vital

1 - Зачем удалять, кому мешают?
Мне пофигу, заказчик так хочет.
может триггер на вставку записей?
Хм, может..<!--shcode--><pre><code class='sql'>CREATE TRIGGER name AFTER INSERT ON table
FOR EACH ROW BEGIN
SELECT count(id)as n from table;
DELETE FROM table ORDER BY `age` DESC LIMIT n-1000
END;[/CODE]
Как то так что ли? хм..

Добавлено: Не работает кста(
 
V

vital

В итоге пришел к такому.. Вроде оно
[sql]CREATE TRIGGER name AFTER INSERT ON emails
FOR EACH ROW BEGIN DELETE FROM emails WHERE id not in (select id from emails order by date desc LIMIT 1000 );
END[/sql]


Добавлено: ФАААААК!
This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
Еще есть варианты?
 
R

rdama

Какая версия мускула?
Если 5.01 то можно job повесить на чистку.
Если нет то пиши хранимку.
 
D

dra4un

ну первое точно с триггером надо...а вот второе...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!