sql >> Databáze >  >> RDS >> Mysql

Omezení tabulky mysql na určitou velikost a automatické mazání nejstarších položek

Navrhuji spouštěče. Toto je nejlepší způsob, jak zajistit, aby při každém vložení byla brána v úvahu maximální velikost tabulky.

Možný duplikát z Jak mohu nastavit maximální počet řádků v tabulce MySQL?

Z této přijaté odpovědi:

Pokuste se omezit přidávání nového záznamu do tabulky. Upozornit na chybu, když bude přidán nový záznam.

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 ;

Pamatujte, že operace COUNT může být pomalá na velkých tabulkách InnoDb.

Na MySQL 5.5 můžete použít příkaz SIGNAL k vyvolání chyby.




  1. Omezení pouze pro jeden záznam označený jako výchozí

  2. PostgreSQL vs. MySQL:Co je nejlepší?

  3. Vysvětlení velikostí řádků Postgres

  4. Najděte nejmenší nepoužívané číslo v SQL Server