2010-01-25 6 views
2

J'ai posé la question même avant, voici une explication détaillée de ce que je suis en train de réaliserpython sqlite insert

J'ai deux tables sqlite
table1 - est table standard - a des champs comme serveur, id, état table2 - a des champs comme serveur, id, statut, numéro, fichier journal

Le tableau 2 est vide et le tableau 1 contient des valeurs. J'essaie de remplir la table2 avec des entrées de table1. je peux récupérer des enregistrements de table1, mais en essayant d'insérer dans table2 il échoue. (Mais l'insertion d'un seul travaux sur le terrain)

self.cursor.execute("select * from server_table1 limit (?)",t) 
#insert into server_process 

for record in self.server_pool_list: 
    print "--->",record # geting output like ---> (u'cloud_sys1', u'free', u'192.168.1.111') 
    self.cursor.execute("insert into server_table2(server,status,id) values (?,?,?)",(record[0],)(record[1],),(record[2],)); 

Et laissez-moi aussi savoir comment produire des messages d'erreur plus utiles lors insertion échoue

+0

Copiez et collez l'erreur générée. – Bear

+0

Oui .. merci je l'ai résolu. Je l'ai utilisé cette (?,?,? "), (Enregistrement [0], record [1], record [2],) plutôt qu'au-dessus ... Maintenant, il travaille :) –

Répondre

3

Cette déclaration est cassé:

self.cursor.execute("insert into server_table2(server,status,id) values (?,?,?)",(record[0],)(record[1],),(record[2],)); 

il faut lire:

self.cursor.execute("insert into server_table2(server,status,id) values (?,?,?)",record[0:2]) 

Et vous pourriez vouloir regarder dans executemany car je pense que cela pourrait vous faire économiser une tonne de temps.

+0

merci voir mon commentaire ci-dessus, je vais aussi essayer votre code. –

Questions connexes