IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Confirmation sur un trigger


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2004
    Messages : 30
    Par défaut Confirmation sur un trigger
    Bonjour à tous,
    Dans un projet je dois utiliser des triggers. Mais je ne connais pas. Donc, j'ai recherché des tutoriaux sur google. Voila le triigger demandé:
    Création d'un trigger trig_buir de type before update or insert for each row. Il controlera la valeur du champ "etatproj" de la table projet, si la nouvelle valeur de "etatproj" est différente de 'D' ou de 'A' et que le projet de rattachement est vide alors le projet de rattachement devient le projet lui-même
    Voila mon trigger
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE OR REPLACE TRIGGER "CRA".trig_projet_buir before update or insert of etatproj on projet
    REFERENCING NEW as new_etat OLD as old_etat
    for each row
    BEGIN
    	if ((new_etat='D' or new_etat='A') and codeprojrattach=NULL)
    	then
    		update projet
    		set codeprojrattach=codeproj
    	END IF;
    END;
    Qu'en pensez-vous? Je n'ai pas mis de clause sur le update: je ne sais pas laquelle mettre. Est-ce importante de la mettre?
    Merci d'avance.
    Yann

  2. #2
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 636
    Par défaut
    Lu,

    Il me semble que ton trigger devrait plutot ressembler à ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    CREATE OR REPLACE TRIGGER trig_buir
    BEFORE INSERT OR UPDATE ON projet
    FOR EACH ROW
    DECLARE
    new_etat projet.etatproj%type;
    BEGIN
    SELECT etatproj into new_etat
    FROM projet
    WHERE etatproj=:new.etatproj;
     
    IF new_etat not in ('D','A') and codeprojrattach=null THEN
    	UPDATE projet SET codprojrattach=new_etat where etatproj=:new.etatproj;
    END IF;
     
    END;
    Cependant, si tu as un champ correspondant au projet attaché dans ta table projet, il faut que tu le déclares et que tu utilises celui-ci dans ton update.

    @+
    la culture c'est comme la confiture moins on en a plus on l'étale.

    Mes tutos

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2004
    Messages : 30
    Par défaut
    Oui, j'ai pas mis toutes les infos dsl
    J'ai ma table projet composé (en simplifié)
    codeprojet (numéro du projet (primary key))
    etatprojet (etat d'avancement du projet: D, A, N, ou G...)
    codeProjRattach (certains projets sont rattachés à un autre projet, dans ce champs on aura le "codeprojet" du projet auquel il est rattaché)

    Voila j'espère avoir été un peu plus clair. Car je ne pense pas que ce que tu as dait dans ton trigger correspond vraiment.

    Dsl pour les imprécisions et merci de ta réponse

Discussions similaires

  1. confirmation sur un lien
    Par AlphonseBrown dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/01/2005, 18h49
  2. Question urgente sur les triggers
    Par devdev dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/11/2004, 10h38
  3. Réponses: 6
    Dernier message: 09/07/2004, 15h07
  4. Petite aide sur les triggers ?
    Par krimson dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 16/04/2004, 16h28
  5. Réponses: 5
    Dernier message: 20/11/2003, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo