powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Написать тригер для очистки таблиц
2 сообщений из 2, страница 1 из 1
Написать тригер для очистки таблиц
    #39553572
0xf3s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе всем время суток, помогите написать тригер.

Обстановка:
В таблицу интенсивно пишутся постоянно данные ( почти каждые 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
...
Рейтинг: 0 / 0
Написать тригер для очистки таблиц
    #39553588
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В триггере такие вещи не делают.
В триггере проверяйте количество записей в таблице, и если достигнут предел, создавайте эвент, в котором уже выполняйте удаление.
И не забудьте запустить шедулер.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Написать тригер для очистки таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]