Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Написать тригер для очистки таблиц
|
|||
|---|---|---|---|
|
#18+
Доброе всем время суток, помогите написать тригер. Обстановка: В таблицу интенсивно пишутся постоянно данные ( почти каждые 5 - 10 сек) прилетает новое значение. Нужно ограничить размер количество данных в таблице, до 440 000 значений. Самые старые удалять, - достигаем 440 000 значений и например удаляем самых старых 100 000 штук. Что считать за старые? За старые считаем данные полученные запросом SELECT * FROM csv ORDER BY id ASC LIMIT 100 000; DDL CREATE TABLE `csv` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `a` float NOT NULL, `b` float NOT NULL, `v` float NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; Пример содержимого таблицы id |date |a |b |v | ---|--------------------|--------|-------|-------| 1 |2017-11-14 14:48:19 |1111.11 |1111.1 |3333.1 | 2 |2017-11-14 14:48:19 |123123 |4453 |12345 | 3 |2017-11-14 14:48:19 |123123 |4453 |12345 | 4 |2017-11-14 14:48:19 |123123 |4453 |12345 | 5 |2017-11-14 14:48:19 |123123 |4453 |12345 | Наработки: В итоге, у меня нет проблем с запросами к мускулю, но не могу оформить это как тригер Вот так вот я узнаю кол-во записей после очередного INSERTта SELECT COUNT(*) FROM csv; Удалить их как бы тоже не проблема DELETE FROM csv ORDER BY id ASC LIMIT 100 000; Итоговый вопрос: Помогите дураку собрать это все в один тригер который будет отрабатывать после INSERT Проверять кол-во записей в таблице Если кол-во записей больше 440 000 выполнять запрос DELETE FROM csv ORDER BY id ASC LIMIT 100 000; Если меньше не чего не делать. PS: ЗАрание спасибо всем кто заглянул. Технические данные: ОС: Linux MySQL: 5.7.20 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 14:45 |
|
||
|
|

start [/forum/topic.php?fid=47&gotonew=1&tid=1830270]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
10ms |
get first new msg: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 159ms |

| 0 / 0 |
