Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Débuter
Débuter Forum d'entraide : Débuter en base de données avec PostgreSQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/02/2011, 13h32   #1
Membre confirmé
 
Développeur informatique
Inscription : janvier 2010
Messages : 185
Détails du profil
Informations personnelles :
Âge : 54

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : janvier 2010
Messages : 185
Points : 233
Points : 233
Par défaut on update current_timestamp ?

Bonjour,

Sous MySql il existe un attribut de champ bien pratique qui met à jour automatiquement la date et l'heure courante, à chaque update.

Sous PostgreSQL, j'ai l'impression que ça n'existe pas et que je dois pour chaque table de la base 1) créer une fonction 2) créer un trigger qui effectue cette mise à jour.

Avant de me lancer là-dedans, est-ce que quelqu'un peut me dire s'il n'y a pas plus simple, ou me confirmer que c'est la seule solution ?
__________________
Cordialement,
Tintinux

Initiateur de Gestinux, une comptabilité gestion open-source, pour Linux, Windows et Mac OS.
Elle est en cours de développement, avec Lazarus. Vous pouvez peut-être aider à la tester, la traduire et même à la développer.
tintinux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 15h54   #2
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 441
Points : 6 441
Bonjour,

A ma connaissance, c'est effectivement la seule solution.

ced
__________________
Rédacteur / Modérateur SGBD
Mes tutoriels et la FAQ MySQL

----------------------------------------------------
Pensez aux balises code et au tag
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 16h08   #3
Membre confirmé
 
Développeur informatique
Inscription : janvier 2010
Messages : 185
Détails du profil
Informations personnelles :
Âge : 54

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : janvier 2010
Messages : 185
Points : 233
Points : 233
Bonjour et merci pour la réponse.

Voici ce que j'ai dû faire, si cela en intéresse d'autres :

Une fois par base :

Code :
CREATE LANGUAGE 'plpgsql'
Code :
1
2
3
4
CREATE OR REPLACE FUNCTION upd_row()
  RETURNS TRIGGER AS
' BEGIN NEW.UpdateDate=NOW(); RETURN NEW; END; '
  LANGUAGE 'plpgsql'
Pour chaque table (devant posséder un champ UpdateDate) :

Code :
1
2
3
4
5
CREATE TRIGGER trg_xxxxx
  BEFORE UPDATE
  ON xxxxx
  FOR EACH ROW
  EXECUTE PROCEDURE upd_row();
__________________
Cordialement,
Tintinux

Initiateur de Gestinux, une comptabilité gestion open-source, pour Linux, Windows et Mac OS.
Elle est en cours de développement, avec Lazarus. Vous pouvez peut-être aider à la tester, la traduire et même à la développer.
tintinux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 19h07   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 990
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 10 990
Points : 18 241
Points : 18 241
Envoyer un message via MSN à CinePhil
Tu peux aussi prévoir que toutes tes requêtes UPDATE incluent la colonne UpdateDate.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 20h38   #5
Membre confirmé
 
Développeur informatique
Inscription : janvier 2010
Messages : 185
Détails du profil
Informations personnelles :
Âge : 54

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : janvier 2010
Messages : 185
Points : 233
Points : 233
Oui, bien sûr, mais cela ne permet pas de détecter les modifications faites sous SQL ou pour lesquelles la colonne de date de dernière mise à jour a été oubliée.

Il est toujours préférable d'utiliser les déclencheurs et mécanismes similaires, quand c'est possible, pour avoir une meilleure traçabilité.
__________________
Cordialement,
Tintinux

Initiateur de Gestinux, une comptabilité gestion open-source, pour Linux, Windows et Mac OS.
Elle est en cours de développement, avec Lazarus. Vous pouvez peut-être aider à la tester, la traduire et même à la développer.
tintinux est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h54.


 
 
 
 
Partenaires

Hébergement Web