トリガーを提案します。これは、各挿入で最大テーブルサイズが考慮されていることを確認するための最良の方法です。
重複の可能性 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 ;
大きなInnoDbテーブルではCOUNT操作が遅くなる可能性があることに注意してください。
MySQL 5.5では、SIGNALステートメントを使用してエラーを発生させることができます。