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

Python Discussion :

[SQLite] for . . . in


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Par défaut [SQLite] for . . . in
    Bonjour à tous,
    je suis face à un problème depuis quelque jours...

    j'ai une base de donnée dans laquel il y a 2 tables j'aimerais prendre une partie des données d'une table et les copier dans l'autre.
    donc je fait un SELECT, je crée un for ... in qui pour chaque ligne précédemment sélectionné je fait une INSERT dans l'autre table...

    conclusion ca ne marche qu'avec la première ligne de la table sélectionné ???
    Si j'enlève le INSERT dans le for et que je fait un print pour afficher un champ de la table selectionner, toutes les ligne passent.

    Est ce normal ? j'ai oublier un truc ??
    Si quelqu'un a une idée, là, j'en ai plus.

    voila le bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cur.execute("SELECT * FROM table1 GROUP BY champ")
    	for row in cur:
    		cur.execute("insert into table2 (champ1,champ2) values (?,?)", (row[1],row[2]))
    		cx.commit()
    ++
    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    Peut-être peux-tu utiliser cette syntaxe pour tout faire en une seule requête:
    http://sqlpro.developpez.com/cours/sqlaz/dml/#LII-E

    Quand tu dis "ca ne marche qu'avec la première ligne de la table sélectionné ???", ca te donne un message d'erreur ou c'est simplement qu'à la fin, tu n'as qu'un seul élément dans la table2 ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Par défaut
    Salut,
    Merci effectivement cette syntaxe d'insertion multiple fonctionne je fait me pencher sur l'insertion multiple conditionnel aussi évoquer dans le document en lien.

    par contre j'aimerai bien comprendre pourquoi dans le For ca ne marche pas. Et pour répondre a ta question, je n'ai qu'un seul élément dans la table 2 (qui se trouve être la première ligne que retourne le SELECT de la table 1.

    merci en tout cas.

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/01/2014, 21h04
  2. qui connait sqlite ?
    Par Emmanuel Lecoester dans le forum SQLite
    Réponses: 23
    Dernier message: 19/02/2010, 13h44
  3. qbasic : pause avec FOR-NEXT
    Par clood200 dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 08/08/2003, 16h51
  4. [Turbo C++] Fonciton containing for are not expanded inline
    Par BuG dans le forum Autres éditeurs
    Réponses: 6
    Dernier message: 17/02/2003, 06h48
  5. [VB6] For Each ... In ...
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/02/2003, 12h56

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