2013-12-01 2 views
2

Я хочу создать таблицу, которая должна иметь максимум 5 строк. Поэтому, если я добавлю новую строку, а таблица уже имеет 5 строк, триггер должен удалить первую строку и добавить новую строку.mysql установка максимального количества строк с помощью триггера

например:

my_table 

id | data 
--------- 
1 | a 
--------- 
2 | b 
--------- 
3 | c 
--------- 
4 | d 

изменение

my_table 

id | data 
--------- 
2 | b 
--------- 
3 | c 
--------- 
4 | d 
--------- 
5 | e 

ответ

3

Вы можете сделать это с помощью триггера:

CREATE TRIGGER handleFiveRows BEFORE INSERT ON tableName 
FOR EACH ROW 
BEGIN 
    IF (SELECT COUNT(*) FROM tableName) = 5 THEN 
     DELETE FROM tableName 
     ORDER BY id 
     LIMIT 1; 
    END IF;  
END; 

Всякий раз, когда у вас есть 5 строк, это будет удалить строку с наименьший id и после вашей вставки вы снова получите 5 строк.

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