2010-01-25 75 views
2

我以前問類似的問題,這裏是我想要達到sqlite的蟒蛇插入

我有兩個sqlite的表
table1的詳細解釋 - 是標準表 - 有一個像服務器,ID,狀態字段 表2 - 具有類似服務器,ID,狀態,號碼,日誌文件的字段

表2是空的,並且表1具有值。我試圖用table1中的條目填充table2。 我可以檢索從表1的記錄,但在試圖插入表2失敗。(但將單場工程)

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],)); 

而且也讓我知道如何在插入失敗

產生更多有用的錯誤信息
+0

複製並粘貼生成的錯誤。 – Bear 2010-01-25 06:42:36

+0

是的..謝謝我解決了它。 我應該用這個 (?,?,?「),(記錄[0],記錄[1],記錄[2]) 代替上面......現在,它的工作:) – 2010-01-25 06:48:00

回答

3

這種說法被打破:

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

應改爲:

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

你可能想看看executemany,因爲我認爲它可以爲你節省大量的時間。

+0

感謝見我上面的評論,我也會嘗試你的代碼。 – 2010-01-25 07:03:07