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
    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
    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 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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 454
    Par défaut
    C'est à vous d'ajouter les colonnes de contrôles qui vous vont bien !

  3. #3
    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
    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
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    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 814
    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.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  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 997
    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 997
    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 +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Expert éminent
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 191
    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 191
    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 ?
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  7. #7
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 134
    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
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  8. #8
    Expert éminent
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 191
    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 191
    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...
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

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