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

Langage SQL Discussion :

Date de modification des données d'une table


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Date de modification des données d'une table
    Bonjour à tous.

    J'explique mon problème : j'ai besoin de pouvoir contrôler la date de la dernière modification des tables de ma BDD.

    Je fais déjà une requête pour connaître la date de la dernière modification de la structure des tables, avec :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $SQL = "SHOW TABLE STATUS FROM " . $BDD;
    $valeurs_info = mysql_query($SQL);
     
    while($valeurs = mysql_fetch_assoc($valeurs_info))
    {
        echo $valeurs['Name'] . "<br />";
        echo $valeurs['Update_time'] . "<br /><br />";
    }

    Cependant, j'ai également besoin de connaître la date de la dernière modification des données elles-même (INSERT INTO, UPDATE ou DELETE).

    Cette information m'est essentielle afin de poursuivre le développement de mon application, aussi n'hésitez pas si vous avec une idée sur la question, ou que vous désirez d'avantage de précisions.

    Merci d'avance.

  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 386
    Points
    18 386
    Par défaut
    C'est à vous d'ajouter les colonnes de contrôles qui vous vont bien !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Si vous entendez par là insérer des champs "date" et "heure", ou "timestamp" dans les tables, ce n'est pas possible ; je ne peux pas intervenir sur leurs structures.

    Mon application possède sa propre base de données locale, et doit la mettre à jour si des changements surviennent sur celle en ligne (afin de pouvoir faire des traitements hors ligne le cas échéant) ; c'est une vérification qu'elle fait à son lancement. Elle doit être en mesure de repérer toute modification (de structure ou de données) en fonction d'une date/heure de dernière modification des tables, individuellement, pour ne télécharger que le stricte nécessaire.

    Il m'est impossible de demander aux modérateurs de cette base de donnée en ligne de penser à mettre des dates/heures à chaque modification, j'ai besoin d'une requête le révélant.

    Il n'y existerait donc pas de requête pour cela ? Je travail sur des serveurs Wamp, avec MySQL, ces informations ne sont pas sauvegardées et récupérables par le biais d'une commande ?

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    La base information_schema contient les métadonnées de tout ce qui est hébergé sur le SGBD.
    La table TABLES contient des colonnes CREATE_TIME et UPDATE_TIME.

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 852
    Points : 52 992
    Points
    52 992
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par DemonSurf Voir le message
    Si vous entendez par là insérer des champs "date" et "heure", ou "timestamp" dans les tables, ce n'est pas possible ; je ne peux pas intervenir sur leurs structures.

    [...]

    Il m'est impossible de demander aux modérateurs de cette base de donnée en ligne de penser à mettre des dates/heures à chaque modification, j'ai besoin d'une requête le révélant.

    Il n'y existerait donc pas de requête pour cela ? Je travail sur des serveurs Wamp, avec MySQL, ces informations ne sont pas sauvegardées et récupérables par le biais d'une commande ?
    Dans une base de données, vous ne trouverez que les informations que vous y mettrez. Par essence un SGBDR ne rajoute pas certaines informations en dehors des méta données des bases (structures de la base - voire vues d'information de schéma). C'est donc à vous de rajouter les colonnes nécessaire aux fonctionnalités souhaitées.

    A +

  6. #6
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 097
    Points : 31 528
    Points
    31 528
    Billets dans le blog
    16
    Par défaut
    Quel que soit le SGBD, il y a quand même les fichiers LOG dans lesquels on retouve les "Points in time" des opérations de mise à jour, non ?

  7. #7
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 399
    Points
    28 399
    Par défaut
    Mais là, on est très loin des définitions du langage SQL. Plutôt les pieds dans la glaise de l'implémentation de chaque SGBD

  8. #8
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 097
    Points : 31 528
    Points
    31 528
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    Mais là, on est très loin des définitions du langage SQL. Plutôt les pieds dans la glaise de l'implémentation de chaque SGBD
    Je suis d’accord, on devrait avoir accès à l’information avec SQL.

    Prenons le cas du Modèle Relationnel de Données. On y trouve la proposition suivante en Tutorial D (et que l’on dois sûrement trouver chez différents chercheurs et auteurs traitant des données temporelles), que je transcris ici en SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE TABLE ENTREPRISE
     (
          EntrepriseID    INTEGER       NOT NULL
        , Raison_Sociale  VARCHAR(48)   NOT NULL
        , ...
      , PRIMARY KEY (EntrepriseID) 
      , LOGGED_TIME_IN (ENTREPRISE_LOG)
     ) ;
    La clause LOGGED_TIME sert à nommer une table de type log, journal, audit, etc. permettant de tracer le vécu des lignes de la table ENTREPRISE. Évidemment, nous n’avons que le droit de consulter la table ENTREPRISE_LOG (avec SQL bien sûr), complètement gérée par le système.

    Je ne sais pas si la norme SQL et les SGBDR proposent quelque chose de ce genre. Cela dit, sans une clause du genre LOGGED_TIME, comment DemonSurf pourrait-il savoir qu’une entreprise a été supprimée à telle date, si cette date de suppression est gérée par lui dans une colonne (et dans la ligne concernée) de la table ENTREPRISE ?

    Il lui reste la solution du trigger : à chaque INSERT, UPDATE, DELETE portant sur la table Entreprise, grâce au trigger qui va bien, on intercepte l’opération pour en noter la date et l’heure dans sa propre table ENTREPRISE_LOG, mais avec tous les aléas induits par exemple par les ROLLBACK, suite à abandon de transaction, etc.

    Sinon, comme je l’ai évoqué, il lui reste l’exploitation des logs. S’il utilise DB2 for z/OS, il existe des outils pour ça. Pour les autres SGBD, voir ce que proposent les éditeurs...

Discussions similaires

  1. [AC-2003] Enregistrer Date et Heure des donnés d'une table vers une autre
    Par piwa6291 dans le forum Access
    Réponses: 8
    Dernier message: 20/03/2015, 14h41
  2. Réponses: 2
    Dernier message: 07/02/2008, 18h38
  3. modification des données d'une table
    Par melleweb dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 28/11/2007, 11h56
  4. Réponses: 11
    Dernier message: 25/07/2006, 21h46
  5. Réponses: 2
    Dernier message: 21/03/2006, 15h22

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