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

SQL Procédural MySQL Discussion :

Erreur 1025 - Clef unique


Sujet :

SQL Procédural MySQL

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 145
    Par défaut Erreur 1025 - Clef unique
    Bonjour,

    Ayant repris une base de donnée existente, je tente de la modifier, en particulier un champ type id_typeutilisateur, qui est une VARCHAR de 5 characteres.

    Ma table est constituée de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TABLE `utilisateur` (
      `id` int(11) NOT NULL auto_increment,
      `nom` varchar(50) collate utf8_unicode_ci NOT NULL,
      `prenom` varchar(50) collate utf8_unicode_ci NOT NULL,
      `id_typeutilisateur` varchar(5) collate utf8_unicode_ci default NULL,
      `identifiant` varchar(20) collate utf8_unicode_ci NOT NULL,
      `motdepasse` blob NOT NULL,
      `observations` text collate utf8_unicode_ci NOT NULL,
      `rang` enum('user','s_user','admin') collate utf8_unicode_ci NOT NULL default 'user',
      PRIMARY KEY  (`id`),
      UNIQUE KEY `id_typeutilisateur_2` (`id_typeutilisateur`),
      KEY `rang` (`rang`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;
    La derniere ligne "rang" est celle que je veux mettre a la place de id_typeutilisateur mais il me retourne l'erreur suivante lors de la destruction de l'entrée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
     
    #1025 - Error on rename of '.\***\#sql-88c_1bb' to '.\***\utilisateur' (errno: 150)
    Impossible de supprimer l'entrée.

    Dans les clef il est indiqué en INDEX

    J'ai donc ajouter une clef INDEX sur une autre entrée du tableau pour supprimer la précédente mais rien n'y fait, il continue de me retourner ce message, après quelque lectures sur le net, cela viendrais de la construction de la ligne et de la clef mais je n'ai pas trouver plus d'informations a ce jour.

    Comment supprimer cette entrée ?

    Cordialement.

    Agité.

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 287
    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 287
    Par défaut
    DROP INDEX ?

  3. #3
    Invité de passage
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1
    Par défaut
    Bonjour,

    J'ai une erreur très similaire sur la commande SQL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE `utilisateur` DROP INDEX `FK_UTILISATEUR_STATUT`
    Erreur:
    #1025 - Error on rename of '.\db\#sql-f4_b3' to '.\db\utilisateur' (errno: 150)

    J'ai essayé plein de trucs mais rien n'y fait. Impossible de la supprimer.

  4. #4
    Membre éclairé Avatar de tibotibo69
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 268
    Par défaut
    Avez-vous trouvé une solution à votre problème ?

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 183
    Par défaut
    UP pour le même problème sur un mysql 5.1.36 avec cette table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE TABLE `country` (
     `iso` char(2) NOT NULL,
     `name` varchar(80) NOT NULL,
     `printable_name` varchar(80) NOT NULL,
     `iso3` char(3) DEFAULT NULL,
     `numcode` smallint(6) DEFAULT NULL,
     `3char_4217` char(3) NOT NULL,
     PRIMARY KEY (`iso`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1
    Je veux supprimer la clé primaire iso :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ALTER TABLE country DROP PRIMARY KEY
    Résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #1025 - Error on rename of '.\crea\#sql-8dc_95' to '.\crea\country' (errno: 150)
    Dommage cette erreur semble trainer depuis plusieurs années..

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 287
    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 287
    Par défaut
    peux-tu essayer ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ALTER TABLE country ENGINE = MyISAM ;
    ALTER TABLE country DROP PRIMARY KEY ;
    ALTER TABLE country ENGINE = InnoDB ;

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 125
    Par défaut
    C'est très certainement une erreur due à la présence d'un clé étrangère...

  8. #8
    Membre confirmé Avatar de DarckCrystale
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Juin 2013
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 71
    Par défaut Peut-être moyen de résoudre
    Bon, je ne sais pas pourquoi, mais j'avais me même problème avec ma base, une erreur 1025.

    Pour le résoudre, le SQL trouvé par ci par là ne me permettant pas de passer outre l'erreur, j'ai essayé depuis des logiciels 'clic-clic'. Donc avec phpmyadmin, ça ne fonctionne pas, par contre avec MySQLWorkbench, j'y suis parvenue !


    RESOLUTION AVEC MYSQLWORKBENCH :

    Se connecter à sa base avec mySQLWorkbench, pour trouver la ligne qui pose problème (celle foreign key je suppose).
    • Trouver sa base dans la liste (exemple : maBase1)
    • Ouvrir l'arborescence, trouver la table a altérer (exemple : maTablePourrieCommeCa)
    • Cliquer droit dessus, choisir alter table.
    • Dans la fenêtre, trouver la colonne qui pose problème (souvent une foreign key, exemple : extMaColonneQuiPlante)
    • Une fois ciblée : déchocher les cases la concernant, puis clic droit > Delete selected columns.
    • Enfin, en bas à droite > Apply. C'est très important sinon ça n'enregistre pas les modifications.



    Pour moi, ça n'a pas levé d'exception et a proprement supprimé la colonne, mais je n'ai pas pensé à copier le SQL, donc si quelqu'un y pense, libre à lui de le donner !

Discussions similaires

  1. Erreur 1025 à l'execution
    Par yasmine* dans le forum Administration
    Réponses: 4
    Dernier message: 02/03/2007, 19h56
  2. Réponses: 11
    Dernier message: 26/07/2006, 13h15
  3. Gestion des erreurs (doublon clef primaire)
    Par capitaine dans le forum Access
    Réponses: 3
    Dernier message: 19/06/2006, 12h22
  4. timestamp en clef unique
    Par exempleinfo dans le forum Oracle
    Réponses: 2
    Dernier message: 29/05/2006, 13h50
  5. avoir des clef uniques
    Par car dans le forum ASP
    Réponses: 23
    Dernier message: 04/08/2005, 16h01

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