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 :

Comment MAJ le même champ présent dans toutes les tables ?


Sujet :

SQL Procédural MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 76
    Points : 49
    Points
    49
    Par défaut Comment MAJ le même champ présent dans toutes les tables ?
    Bonjour,

    Est-il possible avec mysql5 de faire le même update sur toutes les tables à la fois en une seule ligne ?
    Une expression réservée du genre "all tables" par exemple ?
    Merci.

  2. #2
    Membre expérimenté
    Avatar de Adjanakis
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2004
    Messages : 739
    Points : 1 351
    Points
    1 351
    Par défaut
    Hum, pas à ma connaissance, mais s'il s'agit de clés étrangères un ON UPDATE CASCADE devrait suffir.
    Pensez au tag

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 76
    Points : 49
    Points
    49
    Par défaut
    Merci, mais non, il ne s'agit pas d'une clé étrangère.

  4. #4
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut Re: Comment MAJ le même champ présent dans toutes les tables
    Citation Envoyé par PamelaGeek
    Est-il possible avec mysql5 de faire le même update sur toutes les tables à la fois en une seule ligne ?
    Techniquement, c'est possible avec MySQL 5.

    Tu créés une table un peu spéciale avec les données concernant la mise à jour. Sur cette, tu mets un trigger qui fera la chose suivante:
    ON INSERT:
    - UPDATE sur ta table1
    - UPDATE sur ta table2
    ...
    - UPDATE sur ta tablen
    - DELETE de l'enregistrement que tu viens d'insérer dans ta table

    De cette façon, quand tu fais une insertion dans cette table spéciale, cela effectue la mise à jour sur toutes les tables concernées. En théorie, ça devrait marcher.

    Sinon, tu dois aussi pouvoir faire une procédure stockée qui va récupérer le nom de toutes tes tables et faire un UPDATE dessus, mais c'est super chaud à faire !
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

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

Discussions similaires

  1. [2008R2] Modifier un champ dans toutes les tables d'une BD
    Par SINFOGD dans le forum Développement
    Réponses: 5
    Dernier message: 28/10/2014, 14h33
  2. ajouter un champ dans toutes les tables
    Par silene dans le forum Access
    Réponses: 2
    Dernier message: 26/06/2012, 17h33
  3. Réponses: 2
    Dernier message: 19/01/2012, 01h04
  4. Un champ présent dans toutes les tables
    Par eli-stein dans le forum Modélisation
    Réponses: 9
    Dernier message: 13/04/2010, 13h36
  5. Réponses: 6
    Dernier message: 25/03/2008, 11h39

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