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 :

Problème de gestion de positions avec contraintes


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 39
    Points : 45
    Points
    45
    Par défaut Problème de gestion de positions avec contraintes
    Bonjour


    J'ai une table contenant des éléments qui ont des positions, qui pour simplifier ressemble à ca :
    table (id, position)
    Il y'a bien évidemment une clé unique sur la position.

    Le problème c'est que quand je veux changer la position des éléments (par exemple + 1 sur toutes les positions) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE table SET position= position + 1
    J'ai le droit à un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Duplicate entry 'X' for key 'y'
    Ce qui est normal..
    J'ai essayé de faire une transaction ou je desactive les clés, execute l'update et reactive les clés mais le problème reste le même...et n'étant pas un speciliste MySQL je ne vois pas de solution..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ALTER TABLE table DISABLE KEYS
    UPDATE ..
    ALTER TABLE table ENABLE KEYS
    Si quelqu'un à une solution..

    Merci

  2. #2
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Tout d'abord, si c'est le cas, c'est assez ballot de donner comme nom à une table un mot réservé SQL ce qui est le cas de TABLE.
    Essaye tes requêtes en encapsulant le nom de la table comme ceci:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ALTER TABLE `TABLE` DISABLE KEYS
    UPDATE `TABLE` SET position= position + 1
    ALTER TABLE `TABLE` ENABLE KEYS
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 39
    Points : 45
    Points
    45
    Par défaut
    Désolé j'ai mis un faux nom de table pour l'exemple.. malheureusement mon problème est ailleurs..

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/10/2007, 00h39
  2. Problème de gestion des langues avec MFC
    Par Figaro dans le forum Visual C++
    Réponses: 4
    Dernier message: 20/11/2006, 15h56
  3. [Upload] Problème pour gestion d'erreur avec class
    Par allserv dans le forum Langage
    Réponses: 2
    Dernier message: 27/12/2005, 13h00
  4. Problème de gestion de chaînes avec pointeur
    Par LorDjidane dans le forum C
    Réponses: 18
    Dernier message: 19/10/2005, 15h40
  5. [TFrame] Problème de gestion du OnMouseDown avec une Frame
    Par xherault dans le forum Composants VCL
    Réponses: 5
    Dernier message: 23/05/2003, 15h35

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