SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 09.07.2013 12:28:01

Alexeev
Участник
Зарегистрирован: 09.07.2013
Сообщений: 7

Ограничить количеств записей

здравствуйте, возникла следующая проблема.
Необходимо, чтобы в таблице постоянно было 10 запсией, как только происходит запись 11 строки, необходимо удалить самую старую (первую). Как я понимаю надо использовать тригер. Или можно как-то ещё?

Неактивен

 

#2 09.07.2013 12:30:49

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Ограничить количеств записей

Здравствуйте.
Ну да, видимо триггером. Для гарантии количества записей при создании таблицы можно указать
MAX_ROWS=...


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 09.07.2013 12:33:26

Alexeev
Участник
Зарегистрирован: 09.07.2013
Сообщений: 7

Re: Ограничить количеств записей

Т.е, просто при создании указать max_rows, и при каждом inserte, удалять первую строку. Это не очень хорошо, т.к. в таблице должно быть точно 10 записей, а если меньше, то столько и остнется

Неактивен

 

#4 09.07.2013 12:40:48

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Ограничить количеств записей

MAX_ROWS сможет ограничить только сверху smile. Да тут главное триггер правильно реализовать, MAX_ROWS скорее просто подстраховка небольшая. Если не хочется триггером, то да - перед каждым insert'ом удалять одну строку.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 09.07.2013 14:19:02

Alexeev
Участник
Зарегистрирован: 09.07.2013
Сообщений: 7

Re: Ограничить количеств записей

А не подскажите примерчик какого-нибудь похожего тригера?) Просто delete перед insert, мне тоже не очень подходит, все немного сложнее чем я описал) Таблица состои из 50 строчек, каждый 5 строчек описывают поведение 5 параметров, и каждую минуту вставляются новые значения, вот после 10 минут, надо удалить первые 5 строчек. И как составить запрос, который удалит просто первые пять строчек, не использую where, т.к. конкретного поля, значения которого я могу сравнить я не имею.

Неактивен

 

#6 09.07.2013 15:10:32

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Ограничить количеств записей

В описанном случае никак. Нужно завести автоинкрементное поле и по нему удалять.

Неактивен

 

#7 09.07.2013 17:19:52

Alexeev
Участник
Зарегистрирован: 09.07.2013
Сообщений: 7

Re: Ограничить количеств записей

Спасибо, так я и сделал!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson