Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Administration
Administration Forum d'entraide sur l'administration 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 05/11/2007, 03h48   #1
Nouveau Membre du Club
 
Inscription : janvier 2005
Messages : 87
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 87
Points : 37
Points : 37
Par défaut Contrainte sur MySQL 5.0.45

Salut,

J'ai une erreur bizarre lors de la création d'une contrainte sur une table dans MySQL 5.0.45.
Voici la requête :
Code :
1
2
3
ALTER TABLE `vtiger_role2picklist` 
   ADD CONSTRAINT `fk_1_vtiger_role2picklist` FOREIGN KEY (`roleid`)
REFERENCES `vtiger_role` (`roleid`) ON DELETE CASCADE
Voici l'erreur retournée :
Citation:
Script line: 1 Can't create table '.\testbase\#sql-b78_e.frm' (errno: 150)
Pour information : Les deux champs sont identiques (varchar(255)), je suis sur Windows XP SP2, mes tables sont en InnoDB et UTF8.

Toutes aides seraient la bienvenue.

Te-Deum.
Te-Deum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2007, 09h41   #2
Expert Confirmé
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Citation:
il doit y avoir un INDEX où les clés étrangères sont listées comme première colonne, dans le même ordre, et dans la table référencée, il doit y avoir un INDEX où les colonnes référencées sont listées comme premières colonnes, dans le même ordre
.

Citation:
vous pouvez utiliser la commande SHOW INNODB STATUS pour avoir une explication détaillée de la dernière erreur de clé étrangère InnoDB sur le serveur
Source : http://dev.mysql.com/doc/refman/5.0/...nstraints.html
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2007, 10h44   #3
Nouveau Membre du Club
 
Inscription : janvier 2005
Messages : 87
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 87
Points : 37
Points : 37
Salut qi130,

Un admin vTiger m'a demandé d'exporter le script de création de la table avec la requête show create table vtiger_role2picklist. Je me suis rendu compte que l'encodage de la colonne roleid était du latin1 alors que j'ai migré toute ma base en utf8 (Encodage obligatoire pour la prochaine version de vTiger).
J'ai donc changé l'encodage en utf8 et ca a fonctionné !

Merci à toi de m'avoir mis sur une piste et pour information, le serveur m'a renvoyé ce message lors de l'execution de la requête : 'SHOW INNODB STATUS' is deprecated; use 'SHOW ENGINE INNODB STATUS' instead

Pour information : Sur un environnement Windows comment puis-je facilement :
  1. Convertir facilement une base de latin1 vers utf8 (avec conversion des valeurs texte de la table)
  2. Convertir l'encodage par défaut de ma base
Te-Deum 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 11h51.


 
 
 
 
Partenaires

Hébergement Web