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

InterBase Discussion :

suppression d'une foreign key


Sujet :

InterBase

  1. #1
    GMI
    GMI est déconnecté
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 13
    Points : 7
    Points
    7
    Par défaut suppression d'une foreign key
    bonjour à tous

    je suis actuellement en train de modifier un logiciel (en delphi) et sa base de donnée interbase et je dois supprimer une foreign key d'une table (pas le champ, juste le fait que ce champ soit une foreign key).

    le probléme: je ne peux pas supprimer la fk car on me dis que l'index (automatiquement créer par interbase) est utiliser, or je ne peux pas le supprimer...

    voici le message qu'on m'envoye quand j'essaye de supprimer la fk :
    "This operation is not defined for system tables
    unsuccessful metadata update
    object INDEX is in use"

    comment faire??? est ce que je dois vider la table de toutes c données(trés embétant...)?

    merci d'avance

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Fermez Delphi et tout autres logiciels qui pourait se connecter à votre base. Et essayez de nouveau de supprimez la FK depuis IBConsole.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE LA_TABLE_CONTENANT_LA_FK DROP CONSTRAINT INTEG_XX;
    INTEG_XX est le nom de la contrainte correspondant à votre FK.

    On peut la trouver avec cette requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT RC.RDB$CONSTRAINT_NAME
    FROM RDB$RELATION_CONSTRAINTS RC
    inner join rdb$index_segments I on I.rdb$index_name=RC.rdb$index_name
    where RC.rdb$constraint_type='FOREIGN KEY'
     
    and rc.rdb$relation_name='LA_TABLE_CONTENANT_LA_FK'
    and i.rdb$field_name='LE_NOM_DE_LA_COLONNE_CONTENANT_LA_FK'

  3. #3
    GMI
    GMI est déconnecté
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    merci pour ta réponse.

    le probleme est toujours le meme: j'ai tout fermer (aucun logiciel ne se connecte à ma base), j'ai ouvert IBConsole et essayer de lancer la requete : ALTER TABLE CLIENT_ARTICLE DROP CONSTRAINT FK_CLIENT_ARTICLE2 mais toujours la meme reponse:

    "Unsuccessful metadata update
    object INDEX is in use
    Statement: ALTER TABLE CLIENT_ARTICLE DROP CONSTRAINT FK_CLIENT_ARTICLE2"


    y'a pas moyen de supprimer l'index qui fait reference à ce champ?

  4. #4
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Essayez de stopper le serveur et le redemarer avant d'essayer de nouveau.

    Si ca ne marche pas je serais bien currieux de voir la définition de vos deux tables/index/clé etrangère.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 36
    Points : 29
    Points
    29
    Par défaut j'ai le meme prob
    j'ai exactement le meme problème ...

    je met ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ALTER TABLE CHANTIER
     
    DROP CONSTRAINT CT_FK_CHEF_PROJET;
    et cette erreur vient !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Unsuccessful metadata update
    CONSTRAINT CT_FK_CHEF_PROJET does not exist
    Statement: ALTER TABLE CHANTIER
    DROP CONSTRAINT CT_FK_CHEF_PROJET
    je comprend pas !

  6. #6
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Ce n'est pas EXACTEMENT le même probleme car si vous lisiez le message d'erreur de GMI, il n'est pas du tout le même que le votre.

    Votre message vous indique qu'il n'existe pas de contrainte CT_FK_CHEF_PROJET.
    Donc vérifiez que votre foreign key se nomme bien comme ça, ou qu'elle existe bien encore...

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 36
    Points : 29
    Points
    29
    Par défaut c vrai
    c vrai c pas exactement le meme...

    pourtant je vous assure qu'elle existe... et ca fais tout ce matin que je cherche sur des forums pour trouver pourquoi ca marche pas !!!

    je sais quel existe car je n'arrive pas a supprimer la table qui contient la FK (la liaison est toujours existante)

    voila le code de création de cette liaison :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ALTER TABLE "CHANTIER" 
     
    ADD CONSTRAINT "ct_fk_chef_projet" 
    FOREIGN KEY ("FK_CHEF_PROJET") 
    REFERENCES CHEF_PROJET ("PK_CHEFP") 
    ON UPDATE CASCADE ON DELETE CASCADE;
    merci... ++

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 36
    Points : 29
    Points
    29
    Par défaut
    JE DEVIENT FOU !!! J'Y CROI PAS !!!

    j'ai juste oublier de mettre ces P***** de guillemets

    et c'est pour ca que ca allait pas !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ALTER TABLE CHANTIER
     
    DROP CONSTRAINT "ct_fk_chef_projet"
    AHAHGRGGR

    merci quand meme... ++

Discussions similaires

  1. Suppression d'une foreign key
    Par flomomo dans le forum Hibernate
    Réponses: 3
    Dernier message: 23/09/2014, 14h44
  2. listes les champs + table d'une FOREIGN KEY
    Par richard038 dans le forum SQL
    Réponses: 3
    Dernier message: 25/08/2007, 11h20
  3. Réponses: 1
    Dernier message: 14/02/2007, 10h16
  4. Une Foreign Key peut-elle être null ?
    Par bassim dans le forum Firebird
    Réponses: 9
    Dernier message: 21/11/2006, 20h20
  5. [débutant] Aide pour mettre une FOREIGN KEY sur une table
    Par cauldron dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/11/2004, 17h16

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