Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Installation
Installation Forum d'entraide sur les problèmes liés à l'installation de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/06/2006, 10h20   #1
Membre du Club
 
Inscription : avril 2006
Messages : 237
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 237
Points : 55
Points : 55
Par défaut Clés Etrangères : Erreur

Bonjour,
j'ai installé mySQL 5
j'essaie de créer les tables suivantes :

-- table groupe :
Code :
1
2
3
4
5
CREATE TABLE `t_groupe` (
  `id_groupe` tinyint(4) NOT NULL auto_increment,
  `lib_groupe` varchar(20) character set latin1 collate latin1_general_cs NOT NULL,
  PRIMARY KEY  (`id_groupe`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
## table domaine
Code :
1
2
3
4
5
CREATE TABLE `t_domaine` (
  `id_domaine` int(4) NOT NULL auto_increment,
  `lib_domaine` varchar(20) character set latin1 collate latin1_general_cs NOT NULL,
  PRIMARY KEY  (`id_domaine`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
Jusqu'à là, pas de problème.
Quand je crée la table :
Code :
1
2
3
4
5
6
7
8
9
10
CREATE TABLE `t_intervenant` (
  id_intervenant varchar(8) character set latin1 collate latin1_general_cs NOT NULL,
  prenom_nom varchar(30) character set latin1 collate latin1_general_cs NOT NULL,
  id_groupe tinyint(4) NOT NULL,
  actif tinyint(4) NOT NULL default '1',
  id_domaine tinyint(4) NOT NULL,
  PRIMARY KEY  (id_intervenant),
  FOREIGN KEY (id_domaine) REFERENCES t_domaine (id_domaine) ON DELETE CASCADE,
  FOREIGN KEY (id_groupe) REFERENCES t_groupe (id_groupe) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
J'ai :
MySQL a réponduocumentation - Can't create table '.\suivi_activite\t_intervenant.frm' (errno: 150)

d'ou vient le problème
merci à vous
__________________
(@_@)
n@n¤u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2006, 10h24   #2
Membre du Club
 
Inscription : avril 2006
Messages : 237
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 237
Points : 55
Points : 55
Problème Résolu :
C'était un problème de type (en vert)
__________________
(@_@)
n@n¤u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2006, 10h30   #3
Futur Membre du Club
 
Inscription : mars 2006
Messages : 45
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 45
Points : 18
Points : 18
Les champs que tu déclare en clé étrangère doivent se trouver dans la clé primaire il me semble.

comme ceci :

DROP TABLE Acteur;
CREATE TABLE Acteur (
nact NUMBER(4) ,
nom VARCHAR2(50) ,
prenom VARCHAR2(50) ,
annee_nais NUMBER(4) ,
nationalite VARCHAR2(30) ,
CONSTRAINT Pknact PRIMARY KEY (nact) );

DROP TABLE Participation;
CREATE TABLE Participation (
nact NUMBER(4) ,
nfilm NUMBER(7) ,
salaire NUMBER(10) ,
CONSTRAINT Pknfilm PRIMARY KEY (nfilm,nact),
CONSTRAINT Fknfilm FOREIGN KEY (nfilm) REFERENCES Film (nfilm),
CONSTRAINT Fknact FOREIGN KEY (nact) REFERENCES Acteur (nact)
);

tu vois?

sinon voila quelqu'un qui a eu le meme pb que toi :

ps : la table communes dont il parle correspond pour toi a ta table t_intervenant

Citation:
j'ai eu le même souci (version 4.0.21)
il faut créer un index sur le champ de la clé étrangère dans ta table communes

CREATE TABLE communes (
codeSecteur INT,
nom VARCHAR(30) NOT NULL,
cp INT(5) NOT NULL,
index (codeSecteur),
FOREIGN KEY (codeSecteur) REFERENCES secteurs(idSecteur) ON DELETE CASCADE
) TYPE=InnoDB;
mistify est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h38.


 
 
 
 
Partenaires

Hébergement Web