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

Кой е най-добрият начин за изтриване на стари редове от MySQL непрекъснато?

Опитайте да създадете събитие, което ще се изпълнява автоматично в базата данни след желания интервал от време.

Ето един пример:Ако искате да изтриете записи, които са на повече от 30 дни от някаква таблица 'tableName', имаща запис в колона 'datetime'. След това следната заявка се изпълнява всеки ден, което ще извърши необходимото действие за почистване.

CREATE EVENT AutoDeleteOldNotifications
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY 
ON COMPLETION PRESERVE
DO 
DELETE LOW_PRIORITY FROM databaseName.tableName WHERE datetime < DATE_SUB(NOW(), INTERVAL 30 DAY)

Трябва да добавим ON COMPLETION PRESERVE за да запази събитието след всяко бягане. Можете да намерите повече информация тук:http://www.mysqltutorial .org/mysql-triggers/working-mysql-scheduled-event/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да инсталирате phpMyAdmin в собствено приложение

  2. JSON_DEPTH() – Намерете максималната дълбочина на JSON документ в MySQL

  3. Таблицата е посочена два пъти, и като цел за 'UPDATE' и като отделен източник за данни в mysql

  4. Използване на MariaDB

  5. Как да конвертирате низ в шестнадесетичен в MySQL – HEX()