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

Requêtes MySQL Discussion :

Un Update Groupé sinon Rien


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1
    Par défaut Un Update Groupé sinon Rien
    Salut et meilleur voeux à tous,

    Je vais essayer d'être clair :

    Soit une requête UPDATE sous MySQL du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UPDATE Table Set Val1 = A, Val2 = B Where (ID_CléPrimaire = 1 or 
    ID_CléPrimaire = 2 or ID_CléPrimaire = 3) AND Condition_1 = X AND 
    Condition_2 = Y
    Je voudrais que les modifications ne s'appliquent que sur l'ensemble des
    tuples si les conditions sont toutes respectées et si elles ne le sont pas (pour
    par exemple ID_CléPrimaire =2, Condition_1 vaut Z), l'intégralité de la
    requête ne soit pas effectuée.

    Comment faire ?

    Merci de votre aide.

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    bonjour,

    tu peux donner un exemple de ce que dois faire ta requete? quel est le problème avec la requête que tu proposes?
    car perso, je n'ai pas tout compris


    Merci

  3. #3
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    autrement dit, tu veux que la requête ne soit effectuée que si l'ensemble de la table respecte tes conditions ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    UPDATE ta_table
    SET Val1 = A, Val2 = B 
    WHERE NOT EXISTS (
      SELECT 1 FROM (
        SELECT 1 
        FROM ta_table
        WHERE ID_CléPrimaire IN (1, 2, 3) AND Condition_1 = X AND Condition_2 = Y
      )
    )
    (La double imbrication permet de contourner l'interdiction de lire et modifier la même table dans la même requête.)

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

Discussions similaires

  1. [MySQL] doquery UPDATE SET avec rien dans le champ
    Par nils2rs dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/06/2008, 03h22
  2. [portables] Lenovo sinon rien ?
    Par Emmanuel Delahaye dans le forum Ordinateurs
    Réponses: 11
    Dernier message: 19/04/2007, 20h48
  3. Quand j'ai un breakpoint tout marche sinon rien marche
    Par Subkill dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/11/2006, 16h00
  4. [MySQL] Ca fonctionne presque, mais l'UPDATE ne donne rien
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/05/2006, 00h26
  5. delete et update restrict ou rien
    Par Bouboubou dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 04/02/2005, 08h24

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