Ich schlage Trigger vor. Dies ist der beste Weg, um sicherzustellen, dass bei jeder Einfügung die maximale Tabellengröße berücksichtigt wird.
Mögliches Duplikat von Wie kann ich eine maximale Anzahl von Zeilen in einer MySQL-Tabelle festlegen?
Aus dieser akzeptierten Antwort:
Versuchen Sie, das Hinzufügen eines neuen Datensatzes zu einer Tabelle einzuschränken. Löst einen Fehler aus, wenn ein neuer Datensatz hinzugefügt wird.
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 ;
Beachten Sie, dass die COUNT-Operation bei großen InnoDb-Tabellen langsam sein kann.
Unter MySQL 5.5 können Sie die SIGNAL-Anweisung verwenden, um einen Fehler auszulösen.