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 :

SELECT qui fonctionne mais pas UPDATE


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Inscrit en
    Avril 2011
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 70
    Points : 44
    Points
    44
    Par défaut SELECT qui fonctionne mais pas UPDATE
    Bonjour,

    Bon mon titre n'est pas très clair, désolé.
    En fait, je tente de faire un UPDATE qui, ma foi, était largement facile et aurait dû se réaliser sans problème. Étant donné que ça n'a rien donné, j'ai alors fait un SELECT pour vérifier s'il n'y avait pas d'attributs mal écris ou des trucs comme ça... (J'ai vraiment tenté pas mal de trucs pour que ça fonctionne)

    Je vous donne mes structures et mes scripts :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Structures (simplifiées) : 
    commune_test : 
    inseecom varchar(11)
    arrondissementcom int(1)
    
    comtemp : 
    DEP varchar(3)
    COM int(3)
    AR int(1)
    
    
    
    Requêtes : 
    
    Le UPDATE qui ne veut pas fonctionner :
    UPDATE `commune_test`, `comtemp`
    SET `arrondissementcom` = `AR`
    WHERE `inseecom` = CONCAT(`DEP`, LPAD(`COM`, 3, '0'));
    -- Pourquoi elle fonctionne pas celle laaaaa !!!!!!
    
    Le SELECT qui, lui, fonctionne :
    SELECT inseecom, CONCAT(dep, LPAD(com, 3, '0')), arrondissementcom, ar
    FROM gms.commune_test, gms.comtemp
    WHERE inseecom = CONCAT(dep, LPAD(com, 3, '0'));
    Je précise que quand je dis que mon UPDATE ne veut pas fonctionner, c'est qu'il ne me retourne même pas d'erreur, il tente de faire la requête et si je ne l'arrête pas, il continue de tenter. J'ai même fait le test pour qu'il ne tente de mettre à jour qu'une ou deux valeurs, mais ça donne toujours le même résultat : un petit rond bleu qui tourne sur lui-même en guise de pointeur de souris...

    Si quelqu'un pouvait m'aider, ce serait cool, parce que là je vous avoue ne pas comprendre...

    Merci !

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Tu as deux noms de table dans ton UPDATE ou je rêve

    Syntaxe d'un UPDATE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
        SET col_name1=expr1 [, col_name2=expr2 ...]
        [WHERE where_definition]
        [ORDER BY ...]
        [LIMIT row_count]
    Ce qui donnerai plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UPDATE `commune_test`
    SET `arrondissementcom` = `AR`
    WHERE `inseecom` = CONCAT(`DEP`, LPAD(`COM`, 3, '0'));

  3. #3
    Membre du Club
    Inscrit en
    Avril 2011
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 70
    Points : 44
    Points
    44
    Par défaut
    Il faut bien que j'aie le nom de la deuxième table pour pouvoir faire ma ("sorte de") jointure et récupérer les valeurs dans cette table.

    Bon, pour être plus clair, je dois récupérer les arrondissements (AR) de la table comtemp pour les copier dans la colonne des arrondissements (arrondissementcom) de la table commune_test. Voilà ce que fait mon UPDATE.

    J'ai déjà fait de telles requêtes (avec plusieurs noms de table) et ça fonctionnait...

  4. #4
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Votre table n'est elle pas verrouillée ?
    Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)

  5. #5
    Membre averti Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Points : 301
    Points
    301
    Par défaut
    Bonjour.
    Et comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UPDATE commune_test cTest 
    INNER JOIN  comtemp cTemp ON CONDITION_DE_JOINTURE
    SET cTest.arrondissementcom = "AR"
    WHERE cTemp.inseecom = CONCAT(`DEP`, LPAD(`COM`, 3, '0'));
    A toi de mettre la condition de jointure correcte...
    define: Programmeur : Celui qui résout un problème que vous n'aviez pas, d'une façon que vous ne comprenez pas.

  6. #6
    Membre du Club
    Inscrit en
    Avril 2011
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 70
    Points : 44
    Points
    44
    Par défaut
    Merci pour vos réponses !

    Alors j'ai essayé d'écrire ma requête avec un INNER JOIN. Mais c'est sans résultat (pour l'UPDATE, parce qu'elle marche avec mon SELECT).

    Yanika, qu'est-ce que tu veux dire par "table verrouillée" ?

  7. #7
    Membre du Club
    Inscrit en
    Avril 2011
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 70
    Points : 44
    Points
    44
    Par défaut
    Bon, j'ai essayé un truc pas très propre auquel j'avais pensé pendant le week-end... J'ai supprimé ma clé primaire !
    Et bien vous n'allez pas me croire mais ça a fonctionné !
    Je sais que c'est du gros bidouillage, mais tant pis. En tout cas, je tiens à vous remercier pour votre attention.

    A bientôt !

  8. #8
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Citation Envoyé par Kentin64 Voir le message
    J'ai supprimé ma clé primaire !
    AYEEEEEEEEEEEEEEEEEE

    Comme tu veux mais ce n'est pas très propre je trouve

Discussions similaires

  1. Condition If qui fonctionne mais pas Else
    Par Christophe.G dans le forum VBScript
    Réponses: 16
    Dernier message: 05/12/2014, 01h15
  2. Crawsler qui fonctionne mais pas totalement
    Par lemirandais dans le forum Langage
    Réponses: 1
    Dernier message: 02/08/2009, 01h25
  3. Réponses: 3
    Dernier message: 14/04/2009, 11h29
  4. Réponses: 1
    Dernier message: 03/08/2007, 10h09
  5. [FLASH 8] : FLA qui fonctionne mais pas le SWF
    Par xtaze dans le forum Flash
    Réponses: 9
    Dernier message: 24/10/2006, 09h14

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