Triggers

Résolu
cs_sim51 Messages postés 240 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 31 décembre 2006 - 28 juil. 2005 à 21:20
cs_sim51 Messages postés 240 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 31 décembre 2006 - 31 juil. 2005 à 13:43
bonjour à tous,
Voilà j'ai 2 tables : - membre(id_membre*, .....,date_de_maj)
- formation_membre(id_membre* , ..... )
*correspond à la clef primaire, et clef primaire étrangère
date_de_maj me permet de savoir de quand les dates les infos des enregistrements, et comme formation_membre est une sous-table de membre, je voudrais créer un trigger qui dès que je fais un insert ou un update sur la sous-table formation_membre, que le champs date_de_maj prenne la date du jour.


J'espère avoir été clair.
En vous remerciant.


PS: j'utilise postgresql 8



N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!

4 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
30 juil. 2005 à 22:40
CREATE TRIGGER trg_datetime

ON dbo.membre

FOR INSERT,UPDATE

AS

UPDATE membre SET .....,date_de_maj)=CONVERT(DATETIME,getdate())



GO



J'ai pas testé pas SQL server sur cette machine



Désolé j'avais pas vu que c'est du psotgres 8.



Mais ca dois etre un peu pres la meme chose.
3
cs_sim51 Messages postés 240 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 31 décembre 2006 2
31 juil. 2005 à 13:43
Salut,

Merci pour ta réponse c'est dejà plus claire, mais entre temps j'ai trouvé la solution :



/*==========================================================================*/

/* fonction getdate_membre2





*/

/*==========================================================================*/

CREATE OR REPLACE FUNCTION getdate_membre2() RETURNS "trigger" AS

$BODY$

DECLARE

identifiant varchar(20);

BEGIN

identifiant:=new.login;

update membre set
date_maj=CURRENT_TIMESTAMP where login=identifiant;


RETURN new;

END;

$BODY$

LANGUAGE 'plpgsql' VOLATILE;





/*==========================================================================*/

/* trigger
trigger_membre_infoperso



*/

/*==========================================================================*/

CREATE TRIGGER trig_membre_infoperso BEFORE INSERT ON infoperso FOR EACH ROW EXECUTE PROCEDURE getdate_membre2();


Voilà cerla me permet de mettre à jour date_maj de la table membre
quand je fais un insert ou un update sur la table infoperso, de plus
ici la clef des tables est login.

J'ai testé et cela marche.

Merci !!!

N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
29 juil. 2005 à 07:49
Salut



CREATE TRIGGER trg_datetime_insert


ON dbo.stroke_data


FOR INSERT,UPDATE


AS


UPDATE stroke_data SET onset_datetime=CONVERT(DATETIME,onset_date+''+onset_time)


UPDATE stroke_data SET er_datetime=CONVERT(DATETIME,er_date+''+er_time)


UPDATE stroke_data SET exam_datetime=CONVERT(DATETIME,exam_date+''+exam_time)


UPDATE stroke_data SET first_datetime=CONVERT(DATETIME,first_date+''+first_time)


UPDATE stroke_data SET consult_called_dt=CONVERT(DATETIME,consult_called_date+''+consult_called_time)


UPDATE stroke_data SET consult_arrived_dt=CONVERT(DATETIME,consult_arrived_date+''+consult_arrived_time)


GO



VOila a toi de faire la suite
0
cs_sim51 Messages postés 240 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 31 décembre 2006 2
30 juil. 2005 à 15:28
Salut,
Tout d'abord merci pour ta réponse, cependant je ne vois pas du tout ce que fais ton code, pourrais tu me donner quelques explications stp.
Sinon je sais faire un trigger pour mettre à jour moin champs quand celui ci fait parti de la table du trigger, mais je ne sais pas le faire quand le champs appartient à une autre table.
Est-ce que en faisant new.id_membre cela va me donner ce que contient le champs de l'enregistrement qui subit l'update ou l'insert ??



N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!
0
Rejoignez-nous