Trigger udapte automatique suivant la date
sasafca
Messages postés
505
Date d'inscription
Statut
Membre
Dernière intervention
-
BadGuitarist Messages postés 367 Date d'inscription Statut Membre Dernière intervention -
BadGuitarist Messages postés 367 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
voici mon problème, j'ai une table (MaTable) comportant plusieurs champs, dont un qui est une date (champs_date), et un autre qui est un texte (champs_text, par défaut "Prévision").
J'aimerai qu'automatiquement, lorsque la date du champs est inférieur à la date actuelle, le champs texte devienne "Validé".
D'après mes recherches il faudrait créer un trigger, mais je n'ai aucune idée de comment le réaliser.
J'ai essayé de faire ça mais ça ne fonctionne pas, je ne sais pas comment exprimer si "champs_date <= sysdate() " ALORS champs_texte = 'VALIDE'
CREATE OR REPLACE TRIGGER S03.update_etat
AFTER UPDATE
ON S03.MaTable
FOR EACH ROW
WHEN champs_date <= sysdate()
champs_texte = 'VALIDE';
Merci de votre aide !
voici mon problème, j'ai une table (MaTable) comportant plusieurs champs, dont un qui est une date (champs_date), et un autre qui est un texte (champs_text, par défaut "Prévision").
J'aimerai qu'automatiquement, lorsque la date du champs est inférieur à la date actuelle, le champs texte devienne "Validé".
D'après mes recherches il faudrait créer un trigger, mais je n'ai aucune idée de comment le réaliser.
J'ai essayé de faire ça mais ça ne fonctionne pas, je ne sais pas comment exprimer si "champs_date <= sysdate() " ALORS champs_texte = 'VALIDE'
CREATE OR REPLACE TRIGGER S03.update_etat
AFTER UPDATE
ON S03.MaTable
FOR EACH ROW
WHEN champs_date <= sysdate()
champs_texte = 'VALIDE';
Merci de votre aide !
A voir également:
- Trigger udapte automatique suivant la date
- Réponse automatique thunderbird - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Logiciel de sauvegarde automatique gratuit - Guide
- Réponse automatique gmail - Guide
- Sommaire automatique word - Guide
1 réponse
Bonsoir sasafca,
Remarques :
1)Fais attention à la syntaxe :
- dans la clause WHEN, le champs_date est préfixé par le mot clé NEW
- dans le corps (BEGIN ... END), le champs_date doit être préfixé par le mot clé :NEW
2) Le trigger ci-dessus ne se déclenche que si modification d'un enregistrement. Si tu veux qu'il se déclenche aussi pour un nouvel enregistrement, modifie la clause BEFORE ainsi :
CREATE OR REPLACE TRIGGER update_etat BEFORE UPDATE ON MaTable FOR EACH ROW WHEN (NEW.champs_date <= SYSDATE) DECLARE BEGIN :NEW.champs_texte = 'VALIDE'; END ; /
Remarques :
1)Fais attention à la syntaxe :
- dans la clause WHEN, le champs_date est préfixé par le mot clé NEW
- dans le corps (BEGIN ... END), le champs_date doit être préfixé par le mot clé :NEW
2) Le trigger ci-dessus ne se déclenche que si modification d'un enregistrement. Si tu veux qu'il se déclenche aussi pour un nouvel enregistrement, modifie la clause BEFORE ainsi :
BEFORE INSERT OR UPDATE ON MaTable