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

PL/SQL Oracle Discussion :

Trigger Oracle remplacant un INSERT par un UPDATE


Sujet :

PL/SQL Oracle

  1. #1
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 309
    Points
    1 309
    Par défaut Trigger Oracle remplacant un INSERT par un UPDATE
    Bonjour, j'ai un programme qui réalise des INSERT dans une table.

    Je souhaiterais (si possible) créer un Trigger Oracle qui, avant d'effectuer l'INSERT, vérifie l'existence d'un enregistrement semblable dans la base et auquel cas réalise un UPDATE de cet enregistrement plutôt qu'un INSERT dans la base.

    Je vais tenter d'expliquer ce que je veut faire a l'aide d'un exemple bateau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    -----------------
    PERSONNE
    -----------------
    ID_PERSONNE (PK de la table )
    NOM
    PRENOM
    DATE_NAISS
    VILLE
    TAILLE
    Lorsque j'effectue une requete INSERT comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO PERSONNE ( ID_PERSONNE, NOM, PRENOM, DATE_NAISS, VILLE, TAILLE)
    VALUES( 758, 'DUPOND', 'MARC', '10/05/1978', 'PARIS', 80 )
    Imaginons qu'il existe un enregistrement dans la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    123 | DUPOND | MARC | 10/05/1978 | MARSEILLE | 75
    Je souhaiterais que lors de l'INSERT, mon TRIGGER trouve l'enregistrement comportant les même NOM, PRENOM, et DATE_NAISS, et que si un enregistrement existe, plutot que de faire l'INSERT prévu, il réalise un UPDATE de l'enregistrement existant, qui deviendra donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    123 | DUPOND | MARC | 10/05/1978 | PARIS| 80
    Donc ma question est : est-ce-que ca vous semble possible?

    J'espere avoir été clair dans ma requête, si ce n'est pas le cas n'hésiter pas a me le signaler!

    Merci a ceux qui pourront m'aider!
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Nul besoin d'un trigger quand on dispose d'une instruction: MERGE.

  3. #3
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour ,
    Ca depend ... de la version Oracle

    comme aparemment il y a encore des entreprises qui utilisent oracle 6 ici , mieux
    vaut se mefier

    asktom.oracle.com tahiti.oracle.com otn.oracle.com

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.


    phrase chinoise issue du Huainanzi

  4. #4
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Nul besoin d'un trigger quand on dispose d'une instruction: MERGE.
    Seulement voilà, le demandeur a juste oublié d'indiquer la version de la base qu'il utilise...
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  5. #5
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 309
    Points
    1 309
    Par défaut
    J'utilise Oracle 9, donc l'instruction MERGE existe bien.
    Je ne connaissais pas cette instruction, qui semble effectivement correspondre a ce que je souhaite faire!

    Par contre, je dois être un boulet mais j'arrive pas a l'utiliser dans mon cas!
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  6. #6
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 309
    Points
    1 309
    Par défaut
    Après un bon petit triturage de cerveau, il semblerai que je commence a m'approcher du but!

    Voilà l'instruction a laquelle je suis arrivé (pour illustrer l'exemple de ma première question) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    MERGE INTO PERSONNE T1
      USING (SELECT * FROM PERSONNE where nom = 'DUPOND' and prenom='MARC' and date_naiss='10/05/1978') T2
        ON ( 
              T1.nom         = t2.nom and
              T1.prenom      = t2.prenom  and
              T1.date_naiss  = t1.date_naiss
           ) -- Condition de correspondance
    WHEN MATCHED THEN -- Si Vraie
      UPDATE SET VILLE= 'PARIS',  poids = 80
     
    WHEN NOT MATCHED THEN -- Si faux
      INSERT ( ID_PERSONNE, NOM, PRENOM,DATE_NAISS, VILLE, TAILLE ) VALUES ( 758, 'DUPOND', 'MARC', '10/05/1978', 'PARIS',80 );
    Cette instruction fonctionne bien dans le cas de l'UPDATE (si un enregistrement existe) par contre l'INSERT ne s'effectue pas si aucun enregistrement existe.

    Je dois passer a coté de quelque chose, mais je n'arrive pas a identifier quoi!

    Avez-vous une idée?
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  7. #7
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332

    asktom.oracle.com tahiti.oracle.com otn.oracle.com

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.


    phrase chinoise issue du Huainanzi

  8. #8
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    Citation Envoyé par sat83 Voir le message
    Après un bon petit triturage de cerveau, il semblerai que je commence a m'approcher du but!

    Voilà l'instruction a laquelle je suis arrivé (pour illustrer l'exemple de ma première question) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    MERGE INTO PERSONNE T1
      USING (SELECT * FROM PERSONNE where nom = 'DUPOND' and prenom='MARC' and date_naiss='10/05/1978') T2
        ON ( 
              T1.nom         = t2.nom and
              T1.prenom      = t2.prenom  and
              T1.date_naiss  = t1.date_naiss
           ) -- Condition de correspondance
    WHEN MATCHED THEN -- Si Vraie
      UPDATE SET VILLE= 'PARIS',  poids = 80
     
    WHEN NOT MATCHED THEN -- Si faux
      INSERT ( ID_PERSONNE, NOM, PRENOM,DATE_NAISS, VILLE, TAILLE ) VALUES ( 758, 'DUPOND', 'MARC', '10/05/1978', 'PARIS',80 );
    Cette instruction fonctionne bien dans le cas de l'UPDATE (si un enregistrement existe) par contre l'INSERT ne s'effectue pas si aucun enregistrement existe.

    Je dois passer a coté de quelque chose a mon avis!

    Avez-vous une idée?
    tu fais 2 fois T1.date_naiss

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
              T1.nom         = t2.nom AND
              T1.prenom      = t2.prenom  AND
              T1.date_naiss  = t1.date_naiss
    c'est T1.date_naiss = t2.date_naiss

    asktom.oracle.com tahiti.oracle.com otn.oracle.com

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.


    phrase chinoise issue du Huainanzi

  9. #9
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 309
    Points
    1 309
    Par défaut
    tu fais 2 fois T1.date_naiss
    Effectivement, petite boulette de ma part!

    Mais malheureusement ca ne change rien!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    MERGE INTO PERSONNE T1
      USING (SELECT * FROM PERSONNE WHERE nom = 'DUPOND' AND prenom='MARC' AND date_naiss='10/05/1978') T2
        ON ( 
              T1.nom         = T2.nom AND
              T1.prenom      = T2.prenom  AND
              T1.date_naiss  = T2.date_naiss
           ) -- Condition de correspondance
    WHEN MATCHED THEN -- Si Vraie
      UPDATE SET VILLE= 'PARIS',  poids = 80
     
    WHEN NOT MATCHED THEN -- Si faux
      INSERT ( ID_PERSONNE, NOM, PRENOM,DATE_NAISS, VILLE, TAILLE )
     VALUES ( 758, 'DUPOND', 'MARC', '10/05/1978', 'PARIS',80 );
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  10. #10
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    try this

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    MERGE INTO PERSONNE T1
      USING (select 758 ID_PERSONNE , 'DUPOND' NOM , 'MARC' PRENOM , '10/05/1978' DATE_NAISS, 'PARIS' VILLE ,80 taille from dual) s
        ON ( 
              T1.nom         = s.nom AND
              T1.prenom      = s.prenom  AND
              T1.date_naiss  = s.date_naiss
           ) -- Condition de correspondance
    WHEN MATCHED THEN -- Si Vraie
      UPDATE SET VILLE= 'PARIS',  taille = 80             
    WHEN NOT MATCHED THEN -- Si faux
      INSERT ( ID_PERSONNE, NOM, PRENOM,DATE_NAISS, VILLE, TAILLE )
     VALUES ( 758, 'DUPOND', 'MARC', to_date('10/05/1978','DD/MM/YYYY'), 'PARIS',80 )
    /

    asktom.oracle.com tahiti.oracle.com otn.oracle.com

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.


    phrase chinoise issue du Huainanzi

  11. #11
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 309
    Points
    1 309
    Par défaut
    Effectivement, ca marche (j'ai simplement enlevé les champs inutiles dans le USING) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    MERGE INTO PERSONNE T1
      USING (SELECT 'DUPOND' NOM , 'MARC' PRENOM , '01/01/1980' DATE_NAISS FROM dual) s
        ON ( 
              T1.nom         = s.nom AND
              T1.prenom      = s.prenom  AND
              T1.date_naiss  = s.date_naiss
           ) -- Condition de correspondance
    WHEN MATCHED THEN -- Si Vraie
      UPDATE SET VILLE= 'LYON',  taille = 150             
    WHEN NOT MATCHED THEN -- Si faux
      INSERT ( ID_PERSONNE, NOM, PRENOM,DATE_NAISS, VILLE, TAILLE )
     VALUES ( 12, 'DUPOND', 'MARC', to_date('01/01/1980','DD/MM/YYYY'), 'LYON',150)
    Une autre question : Est ce que cette requête est plutôt rapide, ou plutôt lente a l'exécution? Parce que dans mon cas, je devrais exécuter une 100aine de requête MERGE les unes à la suite des autres (alors que pour le moment j'effectuais des INSERT).

    Merci en tout cas pour votre aide a tous.
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  12. #12
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Elle est bien plus rapide qu’un trigger ou un traitement PL/SQL interceptant les exceptions. Mais comme toute instruction SQL c’est bien plus rapide d’exécuter une instruction qui impacte N lignes que de exécuter N fois la même instruction.

  13. #13
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 309
    Points
    1 309
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Elle est bien plus rapide qu’un trigger ou un traitement PL/SQL interceptant les exceptions. Mais comme toute instruction SQL c’est bien plus rapide d’exécuter une instruction qui impacte N lignes que de exécuter N fois la même instruction.
    OK, merci de l'info! Malheureusement j'insert dans la base de donnée ce que je lis (ligne à ligne) dans un fichier, donc je suis obligé d'effectuer une requête par ligne.

    Merci a tous!
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  14. #14
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par sat83 Voir le message
    OK, merci de l'info! Malheureusement j'insert dans la base de donnée ce que je lis (ligne à ligne) dans un fichier, donc je suis obligé d'effectuer une requête par ligne.

    Merci a tous!
    Pas toujours. Un fichier text peut être lu comme une tables externe (à partir de Oracle 9i ). Ensuite ton code deviendra:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Merge Into ma_table
      (Select ...
          From ma_table_externe_qui_est_un_fichier
      )
    etc...

  15. #15
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 309
    Points
    1 309
    Par défaut
    Dans mon cas le fichier a une syntaxe très très particulière (on est loin d'un CSV ou truc du genre), et j'ai donc créer mes propres routines pour parser et lire le fichier.

    En gros j'aurais entre 100 et 1000 MERGE a effectuer les uns derrière les autres tous les 1/4 d'heure. Donc même si ca prend quelques secondes ou quelques dizaines de secondes ca devrait me convenir.
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  16. #16
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 309
    Points
    1 309
    Par défaut
    Encore une question sur le MERGE :

    Y'a t'il un moyen de savoir par quelle "branche (INSERT ou UPDATE) le MERGE est passé?

    Y'a t'il moyen de récupérer le nombre de ligne ajoutées/modifiées?

    Merci!
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  17. #17
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par sat83 Voir le message
    Encore une question sur le MERGE :

    Y'a t'il un moyen de savoir par quelle "branche (INSERT ou UPDATE) le MERGE est passé?
    Je ne pense pas sauf si tu ajoute une colonne dans la table à modifier/insérer.

    Citation Envoyé par sat83 Voir le message
    Y'a t'il moyen de récupérer le nombre de ligne ajoutées/modifiées?

    Merci!
    SQL%RowCount

  18. #18
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 309
    Points
    1 309
    Par défaut
    SQL%RowCount
    Comment le récupérer via une requête SQL? J'ai essayé avec SQL%RowCount mais je n'y suis pas parvenu.
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  19. #19
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Sql%RowCount en PL/SQL plus précisement
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    SQL> set serveroutput on
    SQL> 
    SQL> Begin
      2  MERGE INTO Emp T1
      3    USING (SELECT *
      4             FROM Emp1
      5          ) t2
      6      ON (
      7            T1.Ename       = T2.ename
      8        AND T1.Job         = T2.job
      9        AND T1.Hiredate    = T2.Hiredate
     10         ) -- Condition de correspondance
     11  WHEN MATCHED THEN -- Si Vraie
     12    UPDATE SET t1.comm = t2.comm
     13  WHEN NOT MATCHED THEN -- Si faux
     14    INSERT (t1.empno, t1.ename, t1.job, t1.mgr, t1.hiredate, t1.sal, t1.comm, t1.deptno)
     15     VALUES (t2.empno, t2.ename, t2.job, t2.mgr, t2.hiredate, t2.sal, t2.comm, t2.deptno );
     16    Dbms_Output.put_line('Nb ligne inserées/modifiées ='||to_char(sql%rowcount));
     17  End;
     18  /
     
    Nb ligne inserées/modifiées =1
     
    PL/SQL procedure successfully completed

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplacer dans trigger INSERT par UPDATE si clé existe
    Par Christop33 dans le forum Requêtes
    Réponses: 1
    Dernier message: 05/07/2011, 14h56
  2. Réponses: 6
    Dernier message: 16/04/2008, 11h06
  3. TRIGGER de type "for insert,update"
    Par samworld dans le forum Développement
    Réponses: 3
    Dernier message: 04/07/2007, 20h20
  4. Trigger d'insertion et d'update
    Par Shiva dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 01/01/2007, 15h32
  5. Réponses: 4
    Dernier message: 13/11/2006, 19h05

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