Précédent   Forum du club des développeurs et IT Pro > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 17/12/2012, 15h16   #41
SNY77
 
Homme
Inscription : décembre 2011
Messages : 259
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 259
Points : -7
Points : -7
Non, je suis en alternance c'est pour ça ... Je rebosse dessus depuis le début de la semaine, j'ai testé tes bouts de code et ca veut pas passer apparament !
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 15h21   #42
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 671
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 13 671
Points : 25 525
Points : 25 525
Envoyer un message via MSN à CinePhil
Soit.

Citation:
la partie remplissage de la BDD3 à partir de BDD 1 et 2 fonctionne pas
Symptômes ?
- Pas de données insérées ?
- Message d'erreur ?
- 40° de fièvre ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 15h29   #43
SNY77
 
Homme
Inscription : décembre 2011
Messages : 259
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 259
Points : -7
Points : -7
Message d'erreur:
Code :
Unknown COLUMN 'bdd3.calib_name' IN 'where clause'
La table existe bien ... !
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 15h36   #44
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 671
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 13 671
Points : 25 525
Points : 25 525
Envoyer un message via MSN à CinePhil
Je suppose que c'est cette requête qui donne le message d'erreur ?
Citation:
Code SQL :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
USE bdd_3;
 
INSERT INTO bdd_3.calib
SELECT *
FROM bdd_2.calib
WHERE NOT EXISTS
(
	SELECT 1
	FROM bdd_3.calibration
	WHERE bdd_3.calib_name = bdd2.calib_name
		AND bdd_3.calib_tol = bdd_2.calib_tol
			AND bdd_3.calib_time = bdd_2.calib_time
 
);
bdd_3 est le nom de la base de données, pas celui de la table où pourrait se trouver la colonne calib_name !

Code SQL :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
USE bdd_3;
 
INSERT INTO bdd_3.calib
SELECT *
FROM bdd_2.calib c2
WHERE NOT EXISTS
(
	SELECT 1
	FROM bdd_3.calibration c3
	WHERE c3.calib_name = c2.calib_name
		AND c3.calib_tol = c2.calib_tol
			AND c3.calib_time = c2.calib_time
 
);
Il y a quand même un truc qui m'étonne : tu insères dans une table appelée calib les lignes qui n'existent pas dans une table calibration.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 15h41   #45
SNY77
 
Homme
Inscription : décembre 2011
Messages : 259
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 259
Points : -7
Points : -7
Tu m'as perdu là ! Je regarde et je reviens. Et merci pour l'aide.
Le but est de copier uniquement les lignes non existantes dans BDD3. J'ai pas trop compris comment m'y prendre. A quoi correspondes c2 et c3? (Au fait la table s'appele calibration, ils ont la même structure...)
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 15h46   #46
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 671
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 13 671
Points : 25 525
Points : 25 525
Envoyer un message via MSN à CinePhil
Tu as dit que les 3 BDD avaient la même structure.
Si tu veux insérer des lignes non encore existantes dans bdd3.calib, il faut que tu prennes les données dans bdd2.calib et que tu vérifies si elle n'existent pas déjà dans bdd3.calib.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 18h43   #47
SNY77
 
Homme
Inscription : décembre 2011
Messages : 259
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 259
Points : -7
Points : -7
Dans ton code, a quoi correspond c3 et c2 ?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
USE bdd_3;
 
INSERT INTO bdd_3.calib
SELECT *
FROM bdd_2.calib c2
WHERE NOT EXISTS
(
	SELECT 1
	FROM bdd_3.calib c3
	WHERE c3.calib_name = c2.calib_name
		AND c3.calib_tol = c2.calib_tol
			AND c3.calib_time = c2.calib_time
 
);
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 23h23   #48
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 671
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 13 671
Points : 25 525
Points : 25 525
Envoyer un message via MSN à CinePhil
Ce sont des alias qui évitent de répéter le nom de la table.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 15h10   #49
SNY77
 
Homme
Inscription : décembre 2011
Messages : 259
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 259
Points : -7
Points : -7
J'ai toujours un problème :
Code :
1
2
3
4
5
6
7
8
9
10
11
USE bdd3
INSERT INTO bdd3.calib
SELECT *
FROM bdd2.calib bdd2
WHERE NOT EXISTS
(
	SELECT 1
	FROM bdd3.calib bdd3
	WHERE bdd3.calib_name = bdd2.calib_name
		AND bdd3.calib_tole = bdd2.calib_tole
);
j'ai le message d'erreur suivant:
Code :
TABLE 'ultime_2.calib' doesn't exist
Merci,
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 15h53   #50
SNY77
 
Homme
Inscription : décembre 2011
Messages : 259
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 259
Points : -7
Points : -7
Ca vient de fonctionner (sans comparaison des champs), est il nécessaire de comparer les champs sachant que j'ai des clés primaires et étrangère dans plusieurs tables ?
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 16h07   #51
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 671
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 13 671
Points : 25 525
Points : 25 525
Envoyer un message via MSN à CinePhil
Citation:
j'ai le message d'erreur suivant:
Citation:
TABLE 'ultime_2.calib' doesn't exist
Le message est clair : la requête tente d'utiliser une table qui n'existe pas. Comme la base de données ultime_2 n'est pas citée dans la requête que tu postes, soit ce n'est pas cette requête qui génère l'erreur, soit tu ne postes pas la requête réelle qui provoque l'erreur.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 16h15   #52
SNY77
 
Homme
Inscription : décembre 2011
Messages : 259
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 259
Points : -7
Points : -7
C'est les noms des bases au fait que j'avais changé.
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 16h25   #53
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 671
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 13 671
Points : 25 525
Points : 25 525
Envoyer un message via MSN à CinePhil
Donne donc la vraie requête qui provoque l'erreur !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 12h04   #54
SNY77
 
Homme
Inscription : décembre 2011
Messages : 259
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 259
Points : -7
Points : -7
Vous me conseillez un script batch/sql ou bien l'utilisation d'un logiciel pour la fusion des BDD (on peut avoir de nouvelles BDD et le probléme du script c'est qu'il faudra ajouter des lignes de codes dans ce cas ...). Si le logiciel me permettra de réaliser cela plus rapidement, vous conseiller quelle logiciel ?
Pourra t-on automatiser la tâche de fusion des BDD ?
Merci beaucoup!
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 12h16   #55
SNY77
 
Homme
Inscription : décembre 2011
Messages : 259
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 259
Points : -7
Points : -7
Parce qu'au fait, j'ai le message d'erreur suivant :
Code :
Cannot ADD OR UPDATE a child row: a FOREIGN KEY constraint fails (`bdd3`.`calibration`, CONSTRAINT `fk_CALIBRATION_CONFIG1` FOREIGN KEY (`CONFIG_CONFIG_id`) REFERENCES `config` (`CONFIG_id`) ON DELETE CASCADE ON UPDATE CASCADE)
Pourtant dans bdd3 j'ai ajouter une valeur à config_id à l'identique de bdd2 !
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 14h06   #56
SNY77
 
Homme
Inscription : décembre 2011
Messages : 259
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 259
Points : -7
Points : -7
Un nouveau soucis (pour les précédents ca c'est amélioré) , j'ai l'erreur suivante :
Code :
Duplicate entry '3' FOR KEY 'PRIMARY'
Au fait sur la BDD2 j'ai une ligne avec une clés primaire 3 et sur la BDD3 j'ai déjà une ligne avec l'id 3 mais ce ne sont pas les mêmes informations ... Il refuse d'importer la ligne de la BDD2 !
Merci beaucoup!
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 17h01   #57
SNY77
 
Homme
Inscription : décembre 2011
Messages : 259
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 259
Points : -7
Points : -7
L'idéal serait d'importer dans bdd3 uniquement les champs suivants la clés primaires, (la clés primaires s'incrémente toute seules de toute façons), je ne vois pas comment faire ?
J'ai remplacé l'étoile par les champs (sauf la clés primaire) mais je suis obligé de taper le champs id apparament sinon j'ai erreur du type (count culomn ...)
Code :
1
2
3
INSERT INTO bdd3.config
SELECT *
FROM bdd2.config bdd2
Merci beaucoup!
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 19h27   #58
SNY77
 
Homme
Inscription : décembre 2011
Messages : 259
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 259
Points : -7
Points : -7
Personne ?
J'ai deux BDD de même structure, le but est d'importer les données de la 1ére BDD dans la 2éme, pour éviter les doublons j'aimerai donc ne pas copier le champs _id (clés primaires) des tables, c'est possible ?
Ma requêtes pour l'instant :
Code :
1
2
3
INSERT INTO bdd3.config
SELECT *
FROM bdd2.config bdd2
J'avais penser à mettre à la place de l'étoile les collones suivant la clés primaire mais j'ai un message d'erreur (count colonm) ...
Merci de m'aider !!!
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2013, 16h33   #59
olivier.pitton
Membre éprouvé
 
Avatar de olivier.pitton
 
Homme olivier pitton
Étudiant
Inscription : juin 2012
Messages : 213
Détails du profil
Informations personnelles :
Nom : Homme olivier pitton
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2012
Messages : 213
Points : 444
Points : 444
Pourquoi ne pas utiliser les mécanismes de réplication proposés par MySQL ? C'est fait justement pour aller répliquer les données sur d'autres serveurs, donc tu peux le faire en local.

Documentation
olivier.pitton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2013, 17h47   #60
SNY77
 
Homme
Inscription : décembre 2011
Messages : 259
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 259
Points : -7
Points : -7
Au fait, chaque PC a une BDD en local (obligatoirement car les PC ne sont pas forcement connectés au réseau donc pas de maitre serveur ...), je voudrais donc créer une BDD sur mon poste avec les résultats des BDD locales ...
J'ai donc penser à importer les BDD locales régulièrement sur mon poste et envoyer ensuite les lignes vers la BDD centralisés (elle aussi sur mon poste) cependant j'aimerai éviter les doublons en n'envoyant pas la clés primaire ..;
J'ai penser à la requête précedente mais ça ne fonctionne pas, à la place de l'étoile je ne peux pas mettre les collones suivant la clés primaire ! Une idée parce que je galére vraimment sur ce sujet !!!
Merci beaucoup
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h52.


 
 
 
 
Partenaires

Hébergement Web