sql >> Database >  >> RDS >> Mysql

Mysql-tabel beperken tot een bepaalde grootte en automatisch de oudste vermeldingen verwijderen

Ik stel triggers voor. Dit is de beste manier om ervoor te zorgen dat bij elke inzet rekening wordt gehouden met de maximale tafelgrootte.

Mogelijk duplicaat van Hoe kan ik een maximum aantal rijen instellen in de MySQL-tabel?

Van dat geaccepteerde antwoord:

Probeer een beperking te maken voor het toevoegen van een nieuw record aan een tabel. Geef een foutmelding wanneer er een nieuw record wordt toegevoegd.

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 ;

Houd er rekening mee dat de COUNT-bewerking traag kan zijn op grote InnoDb-tafels.

Op MySQL 5.5 kunt u de SIGNAL-instructie gebruiken om een ​​fout op te heffen.




  1. MySQL - Maak één record uit een kolom

  2. MySql Spaanse karaktergegevens

  3. MySQL:invoegen waar niet bestaat

  4. Hoe een microseconde-precisie datetime in te voegen in mysql?