Mysql как задать чтобы в таблицу можно было добавить максимум 5 строк ?
Нужно чтобы в таблицу можно было максимум иметь 5 значений и при добавление новой записи самая старая просто заменялась на новую ? нужно сделать отдельно таблицу последних зарегестрированных 5 пользователей
ЗАЧЕМ делать отдельную таблицу на 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 последних пользователей.
самое простое(чтоб не проверять каждый раз в коде) создай хранимую процедуру к таблице на добавление. а там проверяй, если меньше 5, то добавляй, иначе апдейти запись с меньшим(большим) как там в задании индексом.
ты не можешь ограничить размер таблицы (естественные ограничения на максимальное количество строк и столбцов к этому вопросу не относятся)
база должна заниматься хранением данных... ограничение на количество сохранённых строк делай в коде который эти данные в базу пихает...
Задача действительно странная, но думаю так как записей всего 5 самый простой вариант сначала их все получать, потом заменять самую сторую в коде и перезаписывать таблицу в базу.
SELECT * FROM users ORDER BY created
Далее заменяешь первую строку в коде и делаешь
TRUNCATE table users;
INSERT INTO users (...) VALUES (...)
Для 5 записей это вполне нормальный вариант, чтобы не усложнять код, для 10000 я бы уже так делать не стал.
Странна задача какая-то...
Ну можно как-то так:
update
tbl
set clmn1 = 'value1', clmn2 = 'value2'
order by date asc
limit 1
Или добавить where, в котором подзапросом вытаскивать самую старую строку и ее обновлять