|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : septembre 2005 Messages : 8 ![]() |
Bonsoir,
Pour mon application (développé avec RoR) je compte utiliser une base de données MySQL (une base assez simple pour l'instant en InnoDB avec des clés étrangères). Ci-dessous voici le contenu de mon fichier pour la création de mes tables: Code :
Code :
ERROR 1005 (HY000) at line 2: Can't create table './nom_de_ma_base/articles.frm' (errno: 150) Version mysql: MySQL 5.0.32-Debian_3-log Merci d'avance pour votre aide. |
||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : février 2007 Messages : 289 ![]() |
Les types de tes champs à relier ne sont pas identiques. Essaye de les changer. Ca devrait marcher...
Je ne peux pas essayer ici, désolée... |
|
|
00
|
|
|
#3 |
![]() ![]() Michel Consultant informatique Inscription : mai 2005 Messages : 3 006 ![]() |
salut,
il faut que tes tables catégories et membre soit créées avant la table article. en effet pour faire référence à une colonne d'une autre table, il faut que celle ci existe |
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : septembre 2005 Messages : 8 ![]() |
Merci pour vos deux réponses, un changement de l'ordre de création m'a permis d'avancer un minimum, a priori par contre tous mes types de variables référencées sont bien identique (sauf erreur de ma part).
J'avance dans le soucie, cela viendrait de mes clauses ON UPDATE et ON DELETE des clés étrangères. Bon j'investigue et je poste l'avancée. Pour les intéréssés voici le nouveau fichier de création: Code :
PS: si un pro-mysql a quelques suggestion en vue d'optimiser ce fichier je l'écouterai avec attention |
||
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : septembre 2005 Messages : 8 ![]() |
En remplacant mais ON DELETE SET NULL par des ON DELETE RESTRICT la création fonctionne correctement.
Pourrait-on m'expliquer pourquoi ma clause ON DELETE SET NULL ne fonctionne pas alors que je ne précise, dans la table article par exemple, un categorie_id NOT NULL ? J'ai vu quelques exemples qui pourtant utilise la clause SET NULL et qui ont l'air d'avoir le même schéma et option que moi Merci (sujet bientôt clos En cadeau voici la dernière version du schéma: Code :
|
||
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : septembre 2005 Messages : 8 ![]() |
Un petit up!!
Pour l'instant la base fonctionne en mode RESTRICT je ne peux toujours pas la créer avec la clause SET NULL. Si quelqu'un a une solution, sinon tant pi je clos le sujet demain merci pour le coup de main. |
|
|
00
|
|
|
#7 |
|
Membre chevronné
![]() Développeur Web Inscription : avril 2005 Messages : 726 ![]() |
Je ne suis pas sûr, mais ton membre_id de la base image fait parti de la clef primaire... C'est peut-être lié à ça,non? |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : septembre 2005 Messages : 8 ![]() |
C'est vrai que dans toutes mes tables j'ai déclarer plusieurs primary key mais ca n'a pas d'inscidence sur la création (par contre quand je rajouterai des données il risquera de se poser un problème, primary key est unique).
Donc il faut que je change mes primary key superflu en index. Pour les foreign key je n'ai toujours pas de solution a part mettre les clé en ON DELETE RESTRICT (Si on supprime un membre, tous ces articles ne seront pas modifié, cela me gène un peu mais je règlerai ce problème autrement tant pis). |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com