Mysql
 sql >> база данни >  >> RDS >> Mysql

Ограничаване на mysql таблицата до определен размер и автоматично изтриване на най-старите записи

Предлагам тригери. Това е най-добрият начин да се гарантира, че при всяко вмъкване се взема предвид максималният размер на таблицата.

Възможен дубликат от Как мога да задам максимален брой редове в 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 ;

Имайте предвид, че операцията COUNT може да е бавна при големи InnoDb таблици.

В MySQL 5.5 можете да използвате израза SIGNAL, за да генерирате грешка.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql auto_increment с 5?

  2. MySQL ограничение, подобно на твърдение

  3. MySQL заявка - принудително чувствително към главни и малки букви с ORDER BY rand( )

  4. NodeJS сървър с mysql увисва

  5. Express js req.body се връща празен