Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
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 11/09/2007, 15h42   #1
Membre Expert
 
Inscription : septembre 2002
Messages : 1 639
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 639
Points : 1 001
Points : 1 001
Par défaut [FB1.5] Trigger pour date et heure

Bonjour,

Avec firebird je désire créer un trigger pour mettre la date à jour ainsi que l'heure lors d'un nouvel enregistrement ou lors d'un modification d'un enregistrement.

Par exemple la table EMPLOYE :

Code :
1
2
3
4
5
 
NOM varchar(20);
PRENOM varchar (20);
DATE date();
HEURE time();
... et un trigger de ce genre :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
SET TERM ^ ;
CREATE TRIGGER CHANGE_DATE_HEURE FOR EMPLOYE
ACTIVE BEFORE UPDATE
ACTIVE BEFORE INSERT
AS
begin
 
DATE = now();
HEURE = now();

end
SET TERM ; ^
Mais ce trigger ne fonctionne pas.

Comment faire cela ?

Merci.
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 15h50   #2
Modérateur
 
Avatar de Cl@udius
 
Homme Claude Renouleaud
Développeur informatique
Inscription : février 2006
Messages : 4 760
Détails du profil
Informations personnelles :
Nom : Homme Claude Renouleaud
Âge : 49
Localisation : France, Hautes Pyrénées (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2006
Messages : 4 760
Points : 6 790
Points : 6 790
Salut

1° remarque: appeler un champ DATE n'est pas vraiment une bonne idée.

Ensuite pour ton trigger utilise les variables de contexte:
Code :
1
2
3
 
  new.TA_DATE = CURRENT_DATE;
  new.TON_HEURE = CURRENT_TIME;
A noter également la présence de CURRENT_TIMESTAMP (et CURRENT_USER).

@+ Claudius
__________________
A la question technique que par MP/MV tu formuleras, la réponse aux oubliettes finira.
Cl@udius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 15h52   #3
Membre confirmé
 
Avatar de TMuet
 
Homme Olivier Muet
Responsable de service informatique
Inscription : septembre 2003
Messages : 222
Détails du profil
Informations personnelles :
Nom : Homme Olivier Muet
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2003
Messages : 222
Points : 254
Points : 254
AFTER insert plutôt que BEFORE insert
TMuet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 15h55   #4
Modérateur
 
Avatar de Cl@udius
 
Homme Claude Renouleaud
Développeur informatique
Inscription : février 2006
Messages : 4 760
Détails du profil
Informations personnelles :
Nom : Homme Claude Renouleaud
Âge : 49
Localisation : France, Hautes Pyrénées (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2006
Messages : 4 760
Points : 6 790
Points : 6 790
Citation:
Envoyé par TMuet Voir le message
AFTER insert plutôt que BEFORE insert
Non non, c'est bien un BEFORE INSERT !!
__________________
A la question technique que par MP/MV tu formuleras, la réponse aux oubliettes finira.
Cl@udius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 16h09   #5
Membre Expert
 
Inscription : septembre 2002
Messages : 1 639
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 639
Points : 1 001
Points : 1 001
Merci, ça fonctionne.
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono 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 23h21.


 
 
 
 
Partenaires

Hébergement Web