2012-11-15 3 views
-2

Est-il possible d'écrire un déclencheur pour activer un autre déclencheur? Ou puis-je mettre le déclencheur 2 dans 1 déclencheur?Utilisation du déclencheur pour activer un déclencheur

+0

oui il est, mais vous ne devriez pas essayer à ... –

+0

Quelle est exactement votre exigence? – user75ponic

+0

Il vaudrait mieux nous dire ce que vous voulez accomplir plutôt que de nous demander si quelque chose est possible. Vous avez donné si peu de détails, la réponse à votre question est OUI ou NON ou PEUT-ÊTRE, selon ce que vous voulez vraiment dire. S'il vous plaît * modifier * votre question pour le rendre plus utile. – APC

Répondre

0

Les déclenchements se déclenchent lorsque les problèmes DML appropriés se produisent sur leur table. Il n'y a pas de concept d'appel d'un déclencheur.

Si vous souhaitez partager le code à travers les événements de différence, qui est facile à faire:

create or replace trigger ins_upd_emp 
before insert or update on emp 
for each row 
begin 
    -- do this only for new records 
    if inserting then 
      :new.id := emp_seq.nextval; 
    end if; 

    -- do this for all records 
    :new.last_activity_user := user; 
    :new.last_activity_date := sysdate; 
end; 

Notez comment l'activité isole mot-clé INSERTION pour un événement. Utilisez ces mots clés lorsque vous souhaitez partager certaines actions, mais pas toutes. Find out more.

Veuillez noter que les déclencheurs nous permettent d'entrer dans de terribles embrouilles, précisément parce que leurs appels sont hors de notre contrôle. N'utilisez que des déclencheurs pour la plus simple des opérations. Construire une logique complexe dans des déclencheurs est mauvais pour plusieurs raisons:

    performances
  1. peut être mauvais pour les états à plusieurs rangées
  2. déclencheurs sont invisibles; les développeurs oublient toujours de les vérifier lors du diagnostic d'un problème
  3. faire des déclencheurs faire des choses qu'ils ne sont pas supposés conduit à horribles kludges.
0

Tout AJOUTZ POUR PERMETTRE

ALTER TRIGGER ACTIVER

ou Désactiver l'

ALTER TRIGGER DISABLE