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

 Oracle Discussion :

Conservation des 100 dernières lignes d'une table


Sujet :

Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 227
    Points : 77
    Points
    77
    Par défaut Conservation des 100 dernières lignes d'une table
    Bonjour.
    Je souhaite faire une table HISTORIQUE qui comporte les changements effectués sur une base de données. Les champs sont HISTORIQUE_ID, HISTORIQUE_TYPE (suppression, modification, ajout), HISTORIQUE_DESCRIPTION (description de la donnée modifiée), HISTORIQUE_LOGINAUTEUR, HISTORIQUE_DATE (date de l'action).
    Mais j'aimerais conserver en permanence uniquement les 100 dernières actions (par date) stockées dans cette table.
    Je suppose qu'il faut faire un trigger mais qu'est-ce qu'il faut mettre dedans (je suis débutant)?
    Merci.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Vous pouvez simplement activer les options d'audit :
    http://www.oracle-base.com/articles/...ting_10gR2.php

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 227
    Points : 77
    Points
    77
    Par défaut
    Bonjour.
    En fait, j'accède à la base oracle avec du PHP et j'aimerais entièrement personnaliser les descriptions de la table HISTORIQUE avec des chaînes de caractères du le PHP.
    est-ce que l'audit peut le faire?

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Et pourquoi pas simplement une vue pour sélectionner les 100 dernières lignes et un traitement de nuit pour supprimer les lignes inutiles ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 227
    Points : 77
    Points
    77
    Par défaut
    Un traitement de nuit, ça veut dire qu'il faut se coucher à 5H du matin ?
    ça veut dire que c'est l'administrateur qui efface tout lui-même régulièrement?

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Non, ça veut dire que tu fais une tâche planifiée qui se lance la nuit pour supprimer les lignes

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 227
    Points : 77
    Points
    77
    Par défaut
    OK.
    En fait, je fais une BDD accessible via PHP et je ne suis pas l'administrateur de la base.
    On peut faire une tâche planifiée si on n'est pas administrateur?
    Sinon, si j'utilisais un trigger, à quoi ressemblerait le code?
    Merci.

  8. #8
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Ben tu te trouves un poste avec cron sous linux ou les tâches planifiées de Windows et voila... un script SQL et c'est plié

  9. #9
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    La tâche planifiée c'est pour la purge de la table HISTORIQUE.

    Pour la partie trigger tu peux t'inspirer de generic trigger for auditing column level changes

Discussions similaires

  1. Dernière ligne d'une table
    Par geofnich dans le forum SAS Base
    Réponses: 2
    Dernier message: 10/05/2010, 16h26
  2. Réponses: 2
    Dernier message: 08/09/2009, 11h57
  3. Dernière ligne ajoutée à une table + mise à jour
    Par belsuncette dans le forum Windows Forms
    Réponses: 6
    Dernier message: 01/10/2007, 12h25
  4. [MySQL] Sélection des dernières lignes d'une table
    Par Civet dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/04/2007, 15h06
  5. Réponses: 6
    Dernier message: 09/06/2006, 18h22

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