Je propose des déclencheurs. C'est le meilleur moyen de s'assurer qu'à chaque insertion la taille maximale du tableau est prise en compte.
Possibilité de doublon de Comment puis-je définir un nombre maximum de lignes dans la table MySQL ?
De cette réponse acceptée :
Essayez de restreindre l'ajout d'un nouvel enregistrement à une table. Génère une erreur lorsqu'un nouvel enregistrement va être ajouté.
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 ;
Notez que cette opération COUNT peut être lente sur les grandes tables InnoDb.
Sur MySQL 5.5, vous pouvez utiliser l'instruction SIGNAL pour déclencher une erreur.