sql >> Base de Datos >  >> RDS >> Mysql

Limitar la tabla mysql a un tamaño determinado y eliminar automáticamente las entradas más antiguas

Propongo disparadores. Esta es la mejor manera de asegurarse de que en cada inserción se tenga en cuenta el tamaño máximo de la tabla.

Posible duplicado of ¿Cómo puedo establecer un número máximo de filas en la tabla MySQL?

De esa respuesta aceptada:

Intente hacer una restricción para agregar un nuevo registro a una tabla. Genera un error cuando se va a agregar un nuevo registro.

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 ;

Tenga en cuenta que la operación COUNT puede ser lenta en tablas grandes de InnoDb.

En MySQL 5.5 puede usar la instrucción SIGNAL para generar un error.