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

SQL Procédural MySQL Discussion :

mySql : trigger sur une vue qui référence plusieurs tables


Sujet :

SQL Procédural MySQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut mySql : trigger sur une vue qui référence plusieurs tables
    Bonjour,

    Une question sur les fonctionnalités de Mysql 5.5.16 avec PhpMyAdmin version 3.4.9 : Peut-on réaliser un trigger "instead of insert or delete or update" pour mettre à jour les tables référencées dans une vue :

    exemple :

    code de la vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create or replace view w_exempleVue as select t1.champ1, t1.champ2,      t2.champ3, t2.champ4 from t1, T2 where t1.cle = t2.cle;
    code du trigger:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    create trigger tr_exemple instead of insert or update or delete on w_exempleVue
    for each row
    begin
    if inserting then
      insert into t1 (w_exempleVue.champ1,w_exempleVue.champ2) where t1.cle = w_exempleVue.cle;
       insert into t2 (w_exempleVue.champ3,w_exempleVue.champ4) where t2.cle = w_exempleVue.cle;
    else if updating
      update t1 set t1.champ1 =w_exempleVue.champ1, t1.champ2 = w_exempleVue.champ2 where t1.cle = w_exempleVue.cle;
      update t2 set t2.champ3 =w_exempleVue.champ3, t2.champ4 = w_exempleVue.champ4 where t2.cle = w_exempleVue.cle;
    else if deleting
      delete from t1 where t1.cle = w_exempleVue.cle;
      delete from t2 where t1.cle = w_exempleVue.cle;
    end if;
    end;
    Ce code est à titre d'exemple, désolé pour les incohérences s'il y en avait, mais il sert juste à illustrer la fonctionnalités que je cherche à implanter dans phpMyAdmin avec mySql lorsque on souhaite qu'une vue mette à jour plusieurs tables qu'elle référence.

    Merci d'avance pour vos réponses.

  2. #2
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    c'est une syntaxe oracle... tu ne peux pas faire de trigger sur une vue en mysql, lis la doc
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Ok, c'est bien ce qu'il me semblait avec la doc, mais j'espérais cette fonctionnalité avec les dernières versions. Je vais donc migrer vers postgre("la BD presque complète du pauvre"). Merci.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/02/2013, 11h40
  2. trigger sur une vue sur sqlserver 2005
    Par thor76160 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 07/03/2009, 11h41
  3. [MSSQL05] Archivage de données, trigger sur une vue
    Par tamiii dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/07/2008, 13h54
  4. Export sur une seule ligne de plusieurs tables
    Par xian21 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/06/2008, 17h11
  5. TRIGGER sur une vue
    Par islamune9 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/09/2007, 17h32

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