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

Langage SQL Discussion :

Mettre à jour des tables avec un trigger


Sujet :

Langage SQL

  1. #1
    Membre régulier Avatar de Titouf
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 177
    Points : 95
    Points
    95
    Par défaut Mettre à jour des tables avec un trigger
    Bonjour,
    Nous avons 3 tables avec 3 colonnes qui doivent être renseignées par les mêmes valeurs. Or nous devons remplir, ces 3 tables par notre progiciel l'une après l'autre, si nous n'en oublions pas une...
    Y a t il une méthode de mettre à jour les 2 tables lorqsqu'on remplit la première? Je pensais par un trigger?
    Qu'est ce que vous en pensez? Si oui, Auriez vous un exemple de code d'un trigger?
    Merci, bye...

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Quelque chose comme :

    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
    CREATE TRIGGER MonTrigger
    ON Table1
    FOR AFTER INSERT
     
    BEGIN
     
    INSERT INTO TABLE 2
    SELECT *
    FROM   NEW
     
    INSERT INTO TABLE 3
    SELECT *
    FROM   NEW
     
    END
    La syntaxe dépend du SGBDR.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre régulier Avatar de Titouf
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 177
    Points : 95
    Points
    95
    Par défaut
    Merci, il s'agissait d'ORACLE.

    Je vais essayer de faire cela...

    Mais j'aimerais savoir quels sont les avantages et désavantages à utiliser un trigger?

    Cette question est simplement pour que je puisse justifier de l'utilisation de cette synthaxe auprès de mes supérieurs.

    Mercie d'avance.

    Thierry
    http://progibank.free.fr

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Le terme avantage ou désavantage n'a pas de sens dans le domaine du fonctionnel...

    Quel est l'avantage de s'arrêter au feu rouge ou de la passer ?

    Encore pourrait parler d'avantage par rapport à un autre moyen...


    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par Titouf
    Mais j'aimerais savoir quels sont les avantages et désavantages à utiliser un trigger?
    Coder ce genre d'automatismes dans un trigger permet de centraliser le traitement dans la BDD : ceci est fort intéressant quand il existe différents interfaces utilisateurs qui accèdent aux mêmes données.
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Points : 3
    Points
    3
    Par défaut trigger vs procédure stockée
    Bonjour,

    Le code contenu dans un trigger pourrait aussi se trouver dans une procédure stockée.
    Y a-t-il des différences en termes de performance ?
    Existe-t-il des règles ou recommendations pour écrire le code dans un trigger plutôt que dans une procédure ?

    Merci d'avance

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Le code contenu dans un trigger pourrait aussi se trouver dans une procédure stockée.
    Y a-t-il des différences en termes de performance ?
    Existe-t-il des règles ou recommendations pour écrire le code dans un trigger plutôt que dans une procédure ?
    Vous êtes sur la bonne voie ! Evidemment qu'il faut passer par une SP. Mieux dans ce cas interdisez l'utilisation directe des ordres INSERT, UPDATE et DELETE par une gestion fine des privilèges et réalisez les par des SP qui peuvent préparer les données. Ce sera mille fois moins couteux et bien plus proche de la notion objet.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci de votre réponse

    Donc les triggers existent, mais ne sont pas recommandés dans la pratique.
    Sont-ils alors vraiment sans intérêt ?

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Donc les triggers existent, mais ne sont pas recommandés dans la pratique.
    non, je dirais simplement que si d'autres possibilité existe autant le faire sans triggers.

    Sont-ils alors vraiment sans intérêt ?
    non car ils permettent d'implémenter les ASSERTIONS SQL plus finement que la norme ne l'a prévu mais au moyen de plus de code.
    Bref ils permettent de valider des contraintes plus complexes que celle nativement proposées par SQL.
    Exemple : exclusion dans un héritage de données, non relation, unicité transverse....

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup de votre réponse !

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/04/2013, 17h34
  2. Réponses: 2
    Dernier message: 03/04/2013, 12h04
  3. Mettre à jour des tables liées entre elles
    Par Abdelkabir dans le forum VB.NET
    Réponses: 3
    Dernier message: 13/08/2007, 15h49
  4. mettre à jour plusieurs tables avec un formulaire
    Par kangourou_agile dans le forum Access
    Réponses: 6
    Dernier message: 07/08/2006, 15h33
  5. Réponses: 3
    Dernier message: 18/07/2006, 17h37

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