newbie en BD demande différence entre Procédure Stockée et Trigger ... - Programmation
Marsh Posté le 24-04-2001 à 16:14:28
Ce nest pas a prendre comme parole d'evangile, mais il me semble qu'une procedure stockee est comme une fonction, c'est a dire une suite de commande que tu appelle quand t'en a besoin, alors qu'un trigger est une suite de commandes qui s'execute lors de condition particulieres..
A confirmer..
[edit]--Message édité par trictrac--[/edit]
Marsh Posté le 24-04-2001 à 16:29:49
Non, pas tout à fait
Pour la procedure stockée, c'est ça en effet.
Pour le trigger, dans l'absolu, tu n'est censé rien faire d'autre que d'éxécuter des procédures stockées/fonctions
En effet, TRIGGER = "Déclencheur" en français.
Mais généralement, les SGDB-R permettent de faire des trigger plus complexe, qu'on peut assimiler à TRIGGER + procédure stockée
Marsh Posté le 24-04-2001 à 16:30:38
...je confirme presque mot pour mot
Marsh Posté le 24-04-2001 à 16:34:04
en bref, j'avais juste koi (j'ai vu les trigger sous oracle...)
Marsh Posté le 24-04-2001 à 16:37:02
oki merci beaucoup tout le monde
Voilà mon ch'tit pbm:
Je suis sous Oracle.
Est-ce que je peux déclencher de manière hebdomadaire (genre tous les vendredi) une procédure stockée à partir d'un trigger qui checkerait le "sysdate" ? Si oui, comment ?
Si vous avez une autre solution, je suis preneur aussi
Encore merci
(là j'avoue que pour cette question je n'ai pas fait de recherche sur le forum je sais c'est pas bien)
[edit]--Message édité par lexdu--[/edit]
Marsh Posté le 24-04-2001 à 16:38:42
Un truc qu'on a oublié de préciser :
Un trigger est associé à une/des action(s) sur une table.
=> Exemple :
Sous M$ SQL, comment envoyer un mail lors de la mise à jour d'une table. (titles)
CREATE TRIGGER reminder
ON titles
FOR INSERT, UPDATE, DELETE
AS
EXEC master..xp_sendmail 'MaryM',
'Don''t forget to print a report for the distributors.'
GO
(Exemple MSDN Library)
master..xp_sendmail est une procédure stockée système, du shéma 'master'
Marsh Posté le 24-04-2001 à 16:39:52
lexdu a écrit a écrit : Si vous avez une autre solution, je suis preneur aussi |
Je peux regarder ça ce soir dans mes cours d'Oracle...
Je les ai pas sous la main là...
Marsh Posté le 24-04-2001 à 16:41:17
lexdu a écrit a écrit : oki merci beaucoup tout le monde Voilà mon ch'tit pbm: Je suis sous Oracle. Est-ce que je peux déclencher de manière hebdomadaire (genre tous les vendredi) une procédure stockée à partir d'un trigger qui checkerait le "sysdate" ? Si oui, comment ? |
il me semble que les triggers ne se déclenchent que si il
y altération de la table visée. donc je pense pas que la
date puisse être l'élément déclencheur. A confirmer...
Marsh Posté le 24-04-2001 à 16:46:27
Bah si je checke l'état de la table DUAL (UPDATE) et plus précisemment le champ sysdate, je dois pouvoir faire déclencher mon trigger à la date voulue (si tant est que je puisse retrouver "vendredi" dans la valeur retournée)
Marsh Posté le 24-04-2001 à 16:47:14
Je sais qu'on peu schéduler des procédures stockées sous Oracle...
Mais je sais plus comment...
Un trigger sur la table DUAL ne me semble pas complètement recommandé (et je pense impossible , heureusement)
Mais il doit y avoir un autre moyen quelquepart...
Marsh Posté le 24-04-2001 à 16:49:51
lexdu > DUAL n'existe pas en fait...
C'est pas une table.
C'est une entité logique dans laquelle s'éxécute toutes les fonctions...
en fait quand tu fais "SELECT SYSDATE FROM DUAL", SYSDATE n'est pas un champ, mais une fonction sans paramètres...
Crée une fonction "GETDATE" par exemple et essaie de l'éxécuter seule, tu verras... Il te faudra mettre une clause "FROM DUAL"
Marsh Posté le 24-04-2001 à 16:57:07
lexdu > Logiquement, si tu parles de traitement périodique, tu dois avoir quelque part un outil de gestion des batchs... Qui te permet de lancer ton traitement quand tu veux. Par exemple, une "crontab".
Un trigger sur dual, effectivement, c'était plutôt une mauvaise idée
Sinon, Lucille t'a tout dit.
Marsh Posté le 24-04-2001 à 16:58:12
tu ne peux pas faire de trigger sur la date, vu qu'il faudrait que le trigger soit lancé H24 pour savoir s'il doit s'activer, ce qui boufferait trop de ressource sur le server (a l'echelle de milliers de triggers).
Il me semble que c'est pareil en php, tu ne peut pas faire un prog qui se lance tout seul a une certaine date sans le faire boucler dans le vent jusqu'a cete date, ce qui n'est pas top au niveau des ressource du server
(genre ssave database MYsql qui tournerait en tache de fond sur le server..)
Marsh Posté le 24-04-2001 à 16:58:25
oki doki, je cherche encore alors ...
mais j'aimerais pouvoir faire tout çà sans avoir à utiliser un scheduler genre ACTA !!!
çà serait con et cher pour une toute petite fonction comme çà
Marsh Posté le 24-04-2001 à 16:59:28
Y'a qu'un 'L' à Lucile
Marsh Posté le 24-04-2001 à 17:01:13
Merci Lucile
Marsh Posté le 24-04-2001 à 16:10:05
Bonjour, bonjour
Tout est dans le titre.
Merci
---------------
Asus U80v (WX016V) (Debian 64bits) + Asus 1015PEM (Ubuntu 64bits) + Freebox v6 + Synology DS211