Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Ograniczenie tabeli mysql do rozmiaru sertain i automatyczne usuwanie najstarszych wpisów

Proponuję wyzwalacze. Jest to najlepszy sposób na zapewnienie, że przy każdym wstawieniu zostanie uwzględniony maksymalny rozmiar tabeli.

Możliwy duplikat z Jak mogę ustawić maksymalną liczbę wierszy w tabeli MySQL?

Z tej zaakceptowanej odpowiedzi:

Spróbuj wprowadzić ograniczenie dotyczące dodawania nowego rekordu do tabeli. Zgłoś błąd, gdy zostanie dodany nowy rekord.

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 ;

Pamiętaj, że operacja COUNT może być powolna na dużych tabelach InnoDb.

W MySQL 5.5 możesz użyć instrukcji SIGNAL, aby zgłosić błąd.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co to jest CHAR_LENGTH() w MySQL?

  2. Mysql Dayofyear w roku przestępnym

  3. Nadużycie JOIN w MySQL? Jak źle może się stać?

  4. Masz problemy z przyłączeniem MySQL, które musi spełniać wiele warunków

  5. Relacja jeden do jednego w MySQL