У меня есть следующая таблицаКак автоматически ограничить количество строк в базе данных?
+-----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------+----------------+
| ID | int(11) unsigned | NO | PRI | NULL | auto_increment |
| userid | int(10) unsigned | NO | MUL | NULL | |
| logintime | int(10) unsigned | NO | | NULL | |
| loginIP | int(4) unsigned | NO | | NULL | |
+-----------+------------------+------+-----+---------+----------------+
вставить новую строку в этой таблице каждый раз, когда пользователь входит в, которая содержит свое время входа в систему, IP-адрес и т.д. ...
Теперь я хочу, чтобы ограничить количество строк до 10 на пользователя! т. е. если есть 10 строк для userid 5, уже и я вставляю новый, мне нужно удалить самую старую из них до вставки.
есть способ написать инструкцию SQL, которая содержит все записи идентификатора пользователя, за исключением последних 10. Я знаю, как использовать LIMIT
для SELECT
, но я не вижу, как я могу реализовать LIMIT в DELETE
.
Похоже, идеальный случай для использования [триггер] (HTTP: // DEV. mysql.com/doc/refman/5.0/en/triggers.html) – bfavaretto
@Riki Lyng SQL не предоставляет эту функцию напрямую. Как сказал bfavaretto, вы можете добавить триггер, который удаляет или ограничивает вставку в вашу таблицу. Другой способ - изменить код, который вызывает базу данных MySQL, чтобы ограничить вставки. – umlcat