IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

supprimer lignes des tables automatiquement


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 76
    Par défaut supprimer lignes des tables automatiquement
    salut,
    mon problème est le suivant:
    je fais un historique, donc je stocke automatiquement des valeurs dans une table de ma base de données chaque matin. le problème est que je ne peux pas stocker à l'infini. je veux que quand j'atteins par exemple 500 lignes dans ma table, les premières lignes seront automatiquement supprimées par les nouvelles.
    j'espère que je me suis fait comprendre.
    et merci d'avance pour votre aide.

  2. #2
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    a chaque nouveau enregistrement et avant son insertion ,tu compte le nombre de lignes existante dans la table ,si c'est >=500 alors tu supprime la première ligne . c'est ça ton problème ?

  3. #3
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Si tu utilise une base Oracle tu peux utiliser un trigger déclenché sur l'insertion dans ta table qui à chaque insertion si le nombre total est > à 500 va supprimer la plus ancienne.

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 76
    Par défaut
    merci pour vos réponses.
    en ce qui concerne la solution de slim_java, c'est la même solution à laquelle j'ai pensé, mais il y a pas mal de lignes à écrire (notons que j'ai oublié l'instruction pour compter les lignes ).
    pour guigui5931, franchement j'ai rien pigé.

    moi je croyais qu'il y a une fonction magique genre "supprimerAnciennes (nombreLigne)"

  5. #5
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    Citation Envoyé par fangriz Voir le message
    (notons que j'ai oublié l'instruction pour compter les lignes ).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      ResultSet résultat = instruction.executeQuery("SELECT * FROM nom_table");
          while (résultat.next()) 
           {
              nb_ligne ++;
           }

  6. #6
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Non surtout pas faire un select * et le parcourir en entier pour compter les lignes. Tu va devoir ramener la totalité des infos de ta table entre la BDD et le programme.
    Tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select count(*) as compte from nom_table:
    qui te renvoi un seul nombre.

    Pour ce qui est de ma solution il s'agit d'utiliser un trigger ou déclencheur en français. C'est un bout de code PL/SQL qui est joué à chaque modification de ta table(cours ici). Cela te permet de faire la modification directement coté Oracle et d'éviter des aller retour entre le programme et la base inutile.
    Cela peut être interessant si ton insert est fait à de nombreux endroits dans le code, en effet tu n'aurais pas à modifier ton code JAVA.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD14] Supprimer ligne de table
    Par mnw.william dans le forum WinDev
    Réponses: 1
    Dernier message: 10/01/2012, 15h33
  2. [AC-2003] Importer des formulaires/Lier des tables automatiquement
    Par tarnx dans le forum VBA Access
    Réponses: 5
    Dernier message: 10/09/2010, 16h18
  3. Travailler avec des tables automatiques
    Par SonnyFab dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/07/2010, 12h02
  4. Travailler avec des tables automatiques
    Par SonnyFab dans le forum Langage SQL
    Réponses: 0
    Dernier message: 29/06/2010, 14h37
  5. Réponses: 18
    Dernier message: 15/04/2008, 11h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo