2010-01-25 55 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