Предлагам тригери. Това е най-добрият начин да се гарантира, че при всяко вмъкване се взема предвид максималният размер на таблицата.
Възможен дубликат от Как мога да задам максимален брой редове в MySQL таблицата?
От този приет отговор:
Опитайте се да направите ограничение за добавяне на нов запис към таблица. Извежда грешка, когато ще се добавя нов запис.
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 ;
Имайте предвид, че операцията COUNT може да е бавна при големи InnoDb таблици.
В MySQL 5.5 можете да използвате израза SIGNAL, за да генерирате грешка.