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

PostgreSQL Discussion :

[update conditionel] Comment updater une table selon un select ?


Sujet :

PostgreSQL

  1. #1
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 56
    Points : 118
    Points
    118
    Par défaut [update conditionel] Comment updater une table selon un select ?
    Bonjour à tous,

    j'ai une table utilisateur, avec user_name(char var), et user_valid(boolean)
    j'ai une autre table qui contient des clés de validation

    key_value(char var), key_valid(boolean)

    J'aimerais mettre user_valid à true, et la clé à false si la clé est à true.

    Donc j'ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    update users set user_valid = (select key_valid from key where key_value = 'b428f1e4c0e27f1f281c8a9c62099' and key_valid = true) where user_id = 19
    Le problème c'est qu'il faut que je sache si l'utilisateur a été validé ou non. Or la requête principale renvoie toujours 1, en effet elle considère qu'elle a bien mis le champ à jour, même si le champ est passé de false à false.

    Ce qui est normal. Mais j'aimerais trouver une solution. C'est dans un environnement concurrentiel.

  2. #2
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 56
    Points : 118
    Points
    118
    Par défaut
    Bon la solution que j'ai décidée :

    Je fais un update de la première table et j'invalide la clé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update key set key_valid = false where key_value='b428f1e4c0e27f1f281c8a9c62099' and key_valid = true
    Si ça me renvoie 1, c'est que la clé était à false, donc inutilisée, et là je peux valider l'utilisateur.

    Si l'update me renvoie 0, c'est que la clé était déjà à false, donc invalide.

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

Discussions similaires

  1. [MySQL] Attribuer un ID à une table selon la selection
    Par dancom5 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/04/2011, 09h17
  2. [AC-97] Update d'une table selon les données d'une autre
    Par coyote90 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 06/11/2009, 15h44
  3. update d'une table suivant un select d'une autre table
    Par cortex024 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/03/2007, 12h38
  4. UPDATER le champ d'une table 1 avec le champ d'une table 2
    Par alain.dissoir dans le forum Oracle
    Réponses: 2
    Dernier message: 08/06/2005, 13h07

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