Se connecter avec
S'enregistrer | Connectez-vous

SQL : foreign key, erreur

Dernière réponse : dans Programmation

Bonsoir,

Avant toute chose, je débute en sql.

J'ai créé une petite base de données pour des besoins internes au taf (c'est un inventaire du parc informatique de mon travail).
3 tables :
type : qui référence le type de matériel (Marque, Modele, Processeur ...) avec un champ ID_ty int unsigned not null auto_increment primary key

connectique, les types de connectiques (10mbits, 100, 1gb, usb, scsi...)

et materiel qui liste les noms des postes

Je souhaite ne plus avoir à faire de jointure entre materiel.ref_type et type.ID_ty
Si j'ai bien compris, je dois utiliser pour ça des clefs étrangères.

C'est là qu'arrive mon problème :
  1. mysql> ALTER TABLE materiel ADD CONSTRAINT mat_type FOREIGN KEY (ref_Type) REFERENCES type(ID_ty);
  2. ERROR 1005 (HY000): Can't create table '.\pti\#sql-920_2.frm' (errno: 150)


J'ai le même problème entre type et connectique.

Si quelqu'un pouvait m'aider (assez vite si possible, j'aimerai boucler ça demain :-P ).

Merci par avance

Autres pages sur : sql foreign key erreur

Lassé par la pub ? Créez un compte

Salut,

si tu ne veux plus faire de jointure entre deux tables, tu dois retirer les contraintes d'intégrités referencielles entre celles ci.
pour cela regarde d'abord le nom des contraintes que tu as posé sur la table avec la commande :


  1. SELECT constraint_name FROM user_constraints WHERE UPPER(table_name) = 'MATERIEL';


Si ensuite tu as par exemple une contrainte de clé étrangère qui s appelle RefMaterielType...
Tu fais alors
  1. ALTER TABLE MATERIELS DROP CONSTRAINT RefMaterielType;


J'espere que ca répond a ta question!! ;-)

ba en fait non, ça n'y répond pas :-P
mais ça m'aide pour autre chose

c'est pas grave, je vais laisser mes jointures pour l'instant, je suis sur un autre projet au taf et je n'ai pas de temps pour ça

merci qd meme
Lassé par la pub ? Créez un compte
Tom's guide dans le monde