Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Mysql как задать чтобы в таблицу можно было добавить максимум 5 строк ?

n0bleman Новичок (0), открыт 3 недели назад
Нужно чтобы в таблицу можно было максимум иметь 5 значений и при добавление новой записи самая старая просто заменялась на новую ? нужно сделать отдельно таблицу последних зарегестрированных 5 пользователей
6 ответов
Сергей Сулимов Оракул (51255) 3 недели назад
запросить таблицу, проверить кол-во строк, если строк <5, добавить строку, если строк = 5, заменить самую старую на вновь вводимую. вот и весь алгоритм.
CausonQ Мудрец (13517) 3 недели назад
Странна задача какая-то...
Ну можно как-то так:

 update
tbl
set clmn1 = 'value1', clmn2 = 'value2'
order by date asc
limit 1
Или добавить where, в котором подзапросом вытаскивать самую старую строку и ее обновлять
Андрей Высший разум (466148) 3 недели назад
ЗАЧЕМ делать отдельную таблицу на 5 зарегистрированных, когда последние 5 зарегистрированных получаются простым запросом:
 SELECT * FROM users ORDER BY id DESC LIMIT 5 
Где id - автоинкрементный первичный ключ в таблице users.

И если хочешь работать с 5 последними как с отдельной таблицей, то нужно создавать не реальную таблицу, а представление:
 CREATE VIEW last_users AS SELECT * FROM users ORDER BY id DESC LIMIT 5 
И в представлении last_users (которое в запросах используется точно так же, как таблица) ты всегда будешь иметь 5 последних пользователей.
Senior Backend Developer Оракул (80413) 3 недели назад
Задача действительно странная, но думаю так как записей всего 5 самый простой вариант сначала их все получать, потом заменять самую сторую в коде и перезаписывать таблицу в базу.

 SELECT * FROM users ORDER BY created 
Далее заменяешь первую строку в коде и делаешь
 TRUNCATE table users; 
 INSERT INTO users (...) VALUES (...) 
Для 5 записей это вполне нормальный вариант, чтобы не усложнять код, для 10000 я бы уже так делать не стал.
Александр Искусственный Интеллект (303809) 3 недели назад
ты не можешь ограничить размер таблицы (естественные ограничения на максимальное количество строк и столбцов к этому вопросу не относятся)


база должна заниматься хранением данных... ограничение на количество сохранённых строк делай в коде который эти данные в базу пихает...
step Мастер (1361) 3 недели назад
самое простое(чтоб не проверять каждый раз в коде) создай хранимую процедуру к таблице на добавление. а там проверяй, если меньше 5, то добавляй, иначе апдейти запись с меньшим(большим) как там в задании индексом.
Похожие вопросы