|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : avril 2006 Messages : 110 ![]() |
Bonjour ! Après recherche infructueuse, je vous demande votre aide ! Voici la situation :
- toutes mes tables sont de type InnoDB - je veux remplir l'une d'elle avec un fichier texte via phpmyadmin - mais cette table à remplir a des contraintes de clés étrangères - l'import ne fonctionne pas : fameuse erreur "une contrainte externe l'empêche" - j'utilise SET FOREIGN_KEY_CHECKS = 0; - l'import ne fonctionne pas - j'enlève toutes les contraintes externes - l'import fonctionne - je tente de remettre les contraintes : ça ne marche pas - pour comprendre là où ça coince je lance une requete pour voir quelles valeurs sont différentes entre les colonnes mère et fille - je me rends compte qu'il y a dans la colonne fille des valeurs NULL - or il n'y pas de valeurs NULL possibles dans la colonne de la table mère référencée ==> le problème vient-il de là ? si oui, pourquoi ? En vous remerciant |
|
|
00
|
|
|
#2 |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
Salut,
Il est tout à fait possible d'avoir des colonnes NULL dans la table fille (d'ailleurs il y a bien une contrainte ON DELETE SET NULL). En revanche certaines valeurs ne se retrouvent peut-être pas dans la table mère et violent donc l'intégrité référentielle. Dans tous les cas tu devrais utiliser un client traditionnel plutôt que PHPMyAdmin (surtout pour les commandes du style SET FOREIGN_KEY_CHECKS = 0)...
__________________
Pensez au bouton
|
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : avril 2006 Messages : 110 ![]() |
Merci de ta réponse. Ce que tu me dis me confirme qu'il doit y avoir une erreur dans mon fichier texte. Je vais vérifier les champs ou plutôt trouver une autre méthode de conversion Access/texte que le passage par excel...
Concernant le SET FOREIGN... ça m'intéresse beaucoup ! quentends-tu par "client traditionnel" ? Il me semblait que phpMyAdmin était l'un des plus traditionnels justement ? Et surtout je pensais qu'en passant par l'interface ligne de commande de celui-ci, on se prémunissait des éventuels bugs ? |
|
|
00
|
|
|
#4 |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
PHPMyAdmin n'est rien d'autre qu'un ensemble de scripts PHP, avec les problèmes potentiels qui en découlent : soucis lorsqu'on uploade des fichiers de grande taille, les statistiques serveur ne sont pas toujours à jour, on ne peut pas faire de procédures stockées, il y a des problèmes d'encodage entre les pages web de l'interface et les tables de la base, les messages d'erreurs ne sont parfois pas explicites ni visibles...
Ce que j'appelle client plus traditionnel c'est le client mysql en ligne de commande ou Query Browser, bref des outils qui permettent un dialogue direct avec le SGBD au plus bas niveau.
__________________
Pensez au bouton
|
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : avril 2006 Messages : 110 ![]() |
Ok, merci, je me renseigne sur ça !
A part ça, je viens de vérifier mon fichier texte et il semblerait que le problème vienne du fait que certaines cellules sous access (style texte libre) contiennent plusieurs lignes, donc plusieurs sauts de lignes, interprétés donc comme des nouvelles lignes dans le fichier texte........ c'était difficile à voir sur un fichier de plusieurs milliers de lignes... bon à savoir pour les bambanes comme moi obligés de se dépatouiller avec des fichiers access et qui se feraient avoir ! Je confirme ça avant de mettre en résolu. |
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : avril 2006 Messages : 110 ![]() |
OK, c'est confirmé, le pb venait bien de là. Pour ce qui est de Query Browser, vrai, il est pas mal, seul défaut on ne peut pas imprimer les tables...
Et même avec ce logiciel la commande SET FOREIGN_KEY_CHECKS=0 n'a pas l'air de fonctionner... je vais ouvrir une autre discussion pour ça car ça me pose de gros problèmes ! Merci en tout cas Maximilian. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com