2013-07-29 3 views
4

Я хочу, чтобы таблица максимальных строк равнялась 100. Если я добавляю 101 строку в эту таблицу, то 1 строка должна удаляться автоматически. Аналогично, я просто хочу, чтобы общее число строк таблицы равнялось 100, порядок удаления должен быть FIFO.
Есть ли какая-нибудь прямая функция MySQL для этого?Как ограничить общее количество строк в таблице mysql

+0

Try использовать 'ДО запуска INSERT'. – Rohan

+0

Привет, проверьте здесь ответ, http://stackoverflow.com/questions/622326/how-do-you-make-a-threshold-or-limit-mysql-table?rq=1 –

ответ

5

Используйте перед этим триггером INSERT.

Ниже я сохранил лимит в 25, установите в соответствии с вашими потребностями.

DELIMITER $$ 

CREATE TRIGGER trigger1 
BEFORE INSERT 
ON table1 
FOR EACH ROW 
BEGIN 
    SELECT COUNT(*) INTO @cnt FROM table1; 
    IF @cnt >= 25 THEN 
    CALL sth(); -- raise an error 
    END IF; 
END 
$$ 

DELIMITER ; 
1

Вы можете простой триггер, как показано ниже:

CREATE TRIGGER Deleter AFTER INSERT on YourTable FOR EACH ROW 
BEGIN 
    Delete from yourTable where ID = (Select MIN(id) from yourTable); 
END; 

То же, что: How do you make a threshold or limit mysql table?

Смежные вопросы