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 :

Enlever une clef multiple


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de nimbus_77
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 109
    Par défaut Enlever une clef multiple
    Bonjour,

    sur une base mysql (Ver 14.12 Distrib 5.0.32) j'ai la table suivante :
    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
     
    +---------------+-------------+------+-----+---------+----------------+
    | Field         | Type        | Null | Key | Default | Extra          |
    +---------------+-------------+------+-----+---------+----------------+
    | id_traction    | int(11)     | NO   | MUL | NULL    | auto_increment |
    | PF               | varchar(20) | NO   | MUL |         |                |
    | remorque      | varchar(12) | NO   | MUL |         |                |
    | shipment      | varchar(8)  | NO   |  MUL  |          |                |
    | date_traction| varchar(10) | YES  |      | oups    |                |
    | origine          | varchar(6)  | NO   |       | dedie   |                |
    | rack             | varchar(3)  | NO   |       | NC      |                |
    | pal              | varchar(4)  | NO   |       | NC      |                |
    | pris             | varchar(5)  | NO   |        | NC      |                |
    | libre            | varchar(5)  | NO   |        | NC      |                |
    | depart         | varchar(5)  | NO   |        | NC      |                |
    +---------------+-------------+------+-----+---------+----------------+
    J'avais positionné UNIQUE sur le trio ( PF , remorque, shipment) avec phpmyadmin à l'époque. (que j'ai complètement abandonné depuis ).

    Aujourd'hui j'aimerais annuler cette interdiction car elle pose problème pour des cas spécifiques.

    j'ai éssayé nombre de syntaxe préconnisée par ce que 'j'ai perçu' du manuel MYSQL sur ALTER TABLE, mais je n'arrive pas à désactiver cette option.

    Bien sur je peux dupliquer ma table et la recréer, mais je suis persuadé qu'il existe une façon de faire plus orthodoxe.

    Merci de vos indications.

    nimbus

  2. #2
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Bonjour,

    lorsque tu a créer ta contrainte unique tu lui a donné un nom.

    Il suffit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE `laTable`
    DROP CONSTRAINT `nomContrainte`;

  3. #3
    Membre confirmé Avatar de nimbus_77
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 109
    Par défaut merci mais ....
    ...
    Le nom de la containte est : remorque ( vu en show index )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ALTER TABLE 'traction' DROP CONSTRAINT `remorque` ;
    me retourne une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CONSTRAINT `remorque`' at line 1
    ça coince ...

  4. #4
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Dans ce cas tente :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ALTER TABLE `traction` DROP INDEX `remorque`

  5. #5
    Membre confirmé Avatar de nimbus_77
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 109
    Par défaut Nickel !
    MERCI !

    je suis aller chercher bien loin une commande toute simple !

    si je deviens plus tordu que les syntaxes de base je vais faire un vilain vieux

    nimbus

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

Discussions similaires

  1. ForeignKey 1-1 utilisant une partie d'une clef multiple
    Par ctxnop dans le forum Entity Framework
    Réponses: 0
    Dernier message: 19/11/2013, 12h27
  2. Comment comment définir une clef primaire dans une table??
    Par nek_kro_kvlt dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/02/2005, 21h06
  3. [C#]Sauvegarde d'une selection multiple d'une listbox?
    Par onouiri dans le forum ASP.NET
    Réponses: 7
    Dernier message: 29/04/2004, 17h16
  4. Réponses: 2
    Dernier message: 11/08/2003, 09h43

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