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 25/07/2003, 12h40   #1
Invité régulier
 
Inscription : mars 2003
Messages : 18
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 18
Points : 8
Points : 8
Par défaut [RESOLU]clé primaire composée de 2 clés étrangères

bonjour!

Je travaille sur une base de données Mysql.
Les tables sont de type InnoDB pour une meilleure gestion des clés étrangères.
Mon problème c'est que j'ai une table dont la clé est composé par deux clés étrangères.
Pour les tables de type MyIsam, je connais la syntaxe mais là je sais pas.
Voici la syntaxe que je croyais bonne:
Code :
1
2
3
4
5
6
7
8
9
10
11
 
CREATE TABLE sponsoriser
(
ref_comp int NOT NULL,
  INDEX ref_comp_INDEX (ref_comp),
  FOREIGN KEY (ref_comp) REFERENCES competition (code_comp) ,
ref_spons int NOT NULL,
  INDEX ref_spons_INDEX (ref_spons),
  FOREIGN KEY (ref_spons) REFERENCES sponsor (num_spons),
constraint cle_sponsoriser PRIMARY KEY (ref_comp, ref_spons)
) TYPE = InnoDB;
J'obtiens l'erreur:
[srvcross] ERREUR 1005: Can't create table './course/sponsoriser.frm' (errno: 150)

La table sponsoriser dépend de la table compétition (clé primaire: code_comp) et de la table sponsor (clé primaire: num_spons).
Un sponsor peut sponsoriser plusieurs compétitions. Une compétition peut être sponsorisée par plusieurs sponsors.

Merci!
Tigresse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2003, 14h06   #2
Membre Expert
 
Avatar de Bidouille
 
Inscription : mars 2003
Messages : 1 158
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 1 158
Points : 1 054
Points : 1 054
Pourquoi veux-tu avoir :
Code :
PRIMARY KEY (ref_comp, ref_spons)
Laisse cela en index avec doublons.
Bidouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2003, 16h26   #3
Membre Expert
 
Avatar de Gruik
 
Développeur Web
Inscription : juillet 2003
Messages : 1 551
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2003
Messages : 1 551
Points : 1 473
Points : 1 473
C'est paskeu elle a fé son analyse avec Merise et qu'elle s'est retrouvée avec une assotiation NN

Pour ton problème, ptet qu'il fo installer un truc supplémentaire pour pouvoir utiliser les tables InnoDB.. chais po
__________________
Gruik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2003, 16h50   #4
Invité régulier
 
Inscription : mars 2003
Messages : 18
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 18
Points : 8
Points : 8

En effet, je me suis retrouvée avec une relation de type NN .
InnoDB est déjà installé. Je crois le problème se situe autre part... .
Tigresse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2003, 17h06   #5
Membre Expert
 
Avatar de Gruik
 
Développeur Web
Inscription : juillet 2003
Messages : 1 551
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2003
Messages : 1 551
Points : 1 473
Points : 1 473
Ah, euh, essaye sans les "foreign key (..)"

8)
__________________
Gruik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2003, 14h38   #6
Invité régulier
 
Inscription : mars 2003
Messages : 18
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 18
Points : 8
Points : 8
Je pense que je devrais mettre la clé en AutoIncrement. Les foreign key c'est obligatoire car c'est des tables InnoDB.

Merci!!
Tigresse 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 21h57.


 
 
 
 
Partenaires

Hébergement Web