Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment supprimer en continu tout ce qui est plus ancien que les 10 dernières entrées d'une base de données MySQL (éventuellement en JPQL/JPA)

Il s'agit d'un problème complexe, car à moins que votre table ne soit liée à aucune autre table, vous pourriez très bien avoir la dernière ligne de la table A faisant référence à une très ancienne ligne de la table B. Dans ce cas, bien que la ligne de la table B soit très ancienne , vous ne pouvez pas le supprimer sans casser la cohérence de votre base de données.

Le faire « en continu » est encore plus difficile (lire :impossible). Je voudrais d'abord

  • examiner si c'est vraiment nécessaire. Les disques ne coûtent pas cher et 10 entrées dans une base de données d'entreprise, ce n'est vraiment rien.
  • implémentez un mécanisme de purge et exécutez-le de temps en temps, lorsque la base de données n'est utilisée par personne d'autre.