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 :

Supprimer une foreignKey ?


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 104
    Points : 64
    Points
    64
    Par défaut Supprimer une foreignKey ?
    Bonjour,
    je n'arrive pas à supprimer une foreign key sur une table innoDB !
    Need some help

    Le script de la création de la table :
    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
    CREATE TABLE `contacts` (
      `IDContact` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Identifiant du contact',
      `NomInterlocuteur` varchar(80) character set utf8 NOT NULL COMMENT 'Nom du contact',
      `PrenomInterlocuteur` varchar(80) character set utf8 NOT NULL COMMENT 'Prenom du contact',
      `NumTel` varchar(15) character set utf8 NOT NULL COMMENT 'Telephone du contact',
      `NumPerso` varchar(15) character set utf8 default '0',
      `NumPortable` varchar(15) character set utf8 NOT NULL,
      `NumFax` varchar(15) character set utf8 NOT NULL COMMENT 'Fax direct du contact',
      `Mail` varchar(50) character set utf8 NOT NULL COMMENT 'Email du contact',
      `Fonction` varchar(50) character set utf8 NOT NULL COMMENT 'Fonction du contact',
      `Service` int(2) NULL COMMENT 'Service auquel le contact est rattache',
      `MoyenCom` int(2) NULL COMMENT 'Moyen de communication prefere du contact',
      `Dispo` varchar(200) character set utf8 NOT NULL COMMENT 'Disponibilite',
      `Societe` int(3) NOT NULL COMMENT 'Client pour lequel le contact travaille',
      `Gestionnaire` varchar(3) character set utf8 NOT NULL,
      PRIMARY KEY  (`IDContact`),
      UNIQUE (`Societe` ,`NomInterlocuteur` ,`PrenomInterlocuteur` ),
      FOREIGN KEY ( `Societe` ) REFERENCES `fichesuivi`.`societes` (`IDSociete`) ON DELETE RESTRICT ON UPDATE CASCADE,
      FOREIGN KEY ( `Service` ) REFERENCES `fichesuivi`.`services` (`IDService`) ON DELETE CASCADE ON UPDATE CASCADE,
      FOREIGN KEY ( `MoyenCom` ) REFERENCES `fichesuivi`.`moyenscom` (`IDMoyenCom` ) ON DELETE CASCADE ON UPDATE CASCADE,
      FOREIGN KEY ( `Gestionnaire` ) REFERENCES `fichesuivi`.`lesemployes` (`IDEmp` ) ON DELETE CASCADE ON UPDATE CASCADE
    ) ENGINE=InnoDB  DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    J'ai essayé des ALTER TABLE contacts DROP FOREIGN KEY Service, des DROP INDEX Service, des DROP CONSTRAINT Service, etc etc et toujours la même erreur :
    #1025 - Error on rename of '.\fichesuivi\contacts' to '.\fichesuivi\#sql2-d54-125' (errno: 152)

    Et j'ai pas mal cherché, mais je trouve pas :/
    Je pense qu'il me manque le "nom" mysql de la clé que j'ai mise en place mais je sais pas comment le trouver...

    Merci

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    salut,

    as tu lu ceci : http://dev.mysql.com/doc/refman/5.0/...nstraints.html ?

    bon courage

    Michel

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 104
    Points : 64
    Points
    64
    Par défaut
    Oui, et je n'avais pas trouvé !
    Là j'ai relu et voilà la commande qu'il faut inscrire :
    SHOW CREATE TABLE tbl_name

    cela permet d'avoir le script de création de la table :
    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
    CREATE TABLE `contacts` (
     `IDContact` int(10) unsigned NOT NULL auto_increment COMMENT 'Identifiant du contact',
     `NomInterlocuteur` varchar(80) NOT NULL COMMENT 'Nom du contact',
     `PrenomInterlocuteur` varchar(80) NOT NULL COMMENT 'Prenom du contact',
     `NumTel` varchar(15) NOT NULL COMMENT 'Telephone du contact',
     `NumPerso` varchar(15) default '0',
     `NumPortable` varchar(15) NOT NULL,
     `NumFax` varchar(15) NOT NULL COMMENT 'Fax direct du contact',
     `Mail` varchar(50) NOT NULL COMMENT 'Email du contact',
     `Fonction` varchar(50) NOT NULL COMMENT 'Fonction du contact',
     `Service` int(2) default NULL COMMENT 'Service auquel le contact est rattache',
     `MoyenCom` int(2) default NULL COMMENT 'Moyen de communication prefere du contact',
     `Dispo` varchar(200) NOT NULL COMMENT 'Disponibilite',
     `Societe` int(3) NOT NULL COMMENT 'Client pour lequel le contact travaille',
     `Gestionnaire` varchar(3) NOT NULL,
     PRIMARY KEY  (`IDContact`),
     UNIQUE KEY `Societe` (`Societe`,`NomInterlocuteur`,`PrenomInterlocuteur`),
     KEY `Service` (`Service`),
     KEY `MoyenCom` (`MoyenCom`),
     KEY `Gestionnaire` (`Gestionnaire`),
     CONSTRAINT `contacts_ibfk_2` FOREIGN KEY (`Service`) REFERENCES `services` (`IDService`) ON DELETE CASCADE ON UPDATE CASCADE,
     CONSTRAINT `contacts_ibfk_3` FOREIGN KEY (`MoyenCom`) REFERENCES `moyenscom` (`IDMoyenCom`) ON DELETE CASCADE ON UPDATE CASCADE,
     CONSTRAINT `contacts_ibfk_4` FOREIGN KEY (`Gestionnaire`) REFERENCES `lesemployes` (`IDEmp`) ON DELETE CASCADE ON UPDATE CASCADE
    ) ENGINE=InnoDB AUTO_INCREMENT=547 DEFAULT CHARSET=utf8
    et pour moi, on voit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CONSTRAINT `contacts_ibfk_2` FOREIGN KEY (`Service`) REFERENCES `services` (`IDService`) ON DELETE CASCADE ON UPDATE CASCADE,
     CONSTRAINT `contacts_ibfk_3` FOREIGN KEY (`MoyenCom`) REFERENCES `moyenscom` (`IDMoyenCom`) ON DELETE CASCADE ON UPDATE CASCADE,
     CONSTRAINT `contacts_ibfk_4` FOREIGN KEY (`Gestionnaire`) REFERENCES `lesemployes` (`IDEmp`) ON DELETE CASCADE ON UPDATE CASCADE
    donc avec un DROP FOREIGN KEY contacts_ibfk_2 cela fonctionne

    Voilà voilà...

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

Discussions similaires

  1. [ contrainte ] supprimer une contrainte DB2
    Par hocinema dans le forum DB2
    Réponses: 4
    Dernier message: 08/01/2004, 15h01
  2. Instruction SQL qui supprime une colonne d'une table
    Par tseg dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/10/2003, 20h47
  3. supprimer une ligne avec cle etrangere
    Par BaBas dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/07/2003, 11h24
  4. Supprimer une colonne sous SQL Serveur 2000
    Par WOLO Laurent dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/07/2003, 12h24
  5. Supprimer une ligne dans un fichier
    Par sbeu dans le forum Langage
    Réponses: 3
    Dernier message: 13/05/2003, 10h30

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