IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Transferer les données d'une table a une autre


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 94
    Par défaut Transferer les données d'une table a une autre
    Bonjour tout le monde, j'ai un soucis avec mon programme, je souhaite récupérer les données sur une table pour les enregistrer dans une autre, mais avant d'enregistrer ( Insert into) je veux faire un test pour voir si les données existe deja ou pas. ci après une partie du code:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    // ****************** Connexion a la première base de données  ***************
    	String url  = "jdbc:mysql://localhost:3306/zaindb";
    	conn = DriverManager.getConnection(url, "root", "");
     
    	System.out.println("Connexion à zain : " + conn);
     
    	stmt = conn.createStatement();
    	rset = stmt.executeQuery("SELECT Id_alarm,Nom_site,Intitule_alarm,Date_heure,Num_ticket FROM list_alarm" );
            String valeur ="";String valeur1 ="";String valeur2 ="";String valeur3 ="";String valeur4 ="";
    	String val ="";
     
            while (rset.next()) {
     
            	valeur = rset.getString("Id_alarm");valeur1 = rset.getString("Nom_site");
            	valeur2 = rset.getString("Intitule_alarm");valeur3 = rset.getString("Date_heure");
            	valeur4 = rset.getString("Num_ticket");
            	// ******** Connexion a la deuxieme base de données **********************
            	String url1  = "jdbc:mysql://localhost:3306/zaindb1";		
        		conn = DriverManager.getConnection(url1, "ibra", "");
        		stmt = conn.createStatement();
        		ResultSet rset1;	
    //    		 *********  test: vérifier si l'alarme existe avant d'ajouter ************ 	
        		rset1 = stmt.executeQuery("SELECT Id_alarm FROM alarm_list" );
         		while (rset1.next()) {
        		val = rset.getString("Id_alarm");
     
        		if (valeur != val){
     
        			stmt.executeUpdate("INSERT INTO `alarm_list` ( `Id_alarm` , `N_site` , `Int_alarm` , `Date_heure` ) VALUES ("+ valeur+",'"+ valeur1+"','"+ valeur2+"','"+ valeur3+"')");
        			} 
        		}
        	}

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,
    Je ne sais pas quel est ton problème exactement, mais j'en vois un :
    Si le premier Id_alarm n'est pas ta valeur tu enregistres... Ta boucle à la fin ne fait pas ce que tu décris avant...
    Ta requête de test me parait pas bien fait : pourquoi n'utilises tu pas une clause WHERE pour tester avec la valeur de ton ID dans ta requête? Ca t'évitera de recevoir des cetaines d'enregistrements : si quelque chose est retourné tu ne fais rien (ton Id est déjà présent) si non tu l'ajoutes

    PS : ajoute la balise de code stp ca sera plus lisible (le bouton # quand tu édites)
    Dernière modification par Invité ; 26/08/2008 à 10h51. Motif: fautes d'orthographe

  3. #3
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 94
    Par défaut
    j'essaye de te suivre mais c'est pas encore bien claire,
    j'ai utiliser 2 boucle while, la 1ere parcour le 1er tableau (ligne par ligne) et stock les valeur o fur et a mesure. apres avoir stocké la 1ere ligne, el parcoure la 2em table a l'aide de la 2eme boucle while et si el se rend compte ke l'Id_ existe deja el ne fait rien (pas d'ajout) d'ou l'existence de la condition "if".
    mais ça ne marche pas et kan j'enlève le 2eme while lors de l'enregistrement il ya des pb de doublon clé primaire ...

    j'spère avoir été un peu plus clair dans ce que je veux???

  4. #4
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 94
    Par défaut
    si tu as compris ce que je veux faire tu peux toute fois me proposer une autre solution aussi.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ce que je te dis : pourquoi parcourir la deuxième table ?
    Si tu fais une requete du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "SELECT Id_alarm FROM alarm_list WHERE Id_alarm=" + valeur
    Tu auras soit une soit zero entrée dans ton résultat. Pas besoin de perdre du temps à tout parcourir autant tout mettre dans la requete...
    Tu peux ensuite tester si tu as un résultat ou pas, si pas de résultat alors tu insères ta ligne. Un truc du genre (ca fait longtemps que j'ai essayé je ne sais pas si il y a une meilleure méthode pour calculer la taille)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(!rs.next)
    {
       // INSERT
    }

  6. #6
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 94
    Par défaut
    ok je vais tester ça et je vous tiens informer

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. [MySQL] Transferer les données d'1 table a une autre
    Par steph70 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 01/02/2012, 16h38
  3. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  4. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29
  5. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo