之前我曾问过类似的问题,这里是我正在努力实现的详细解释
我有两个sqlite表
table1 - 是标准表 - 包含服务器,id,状态等字段
table2 - 包含服务器,id,状态,编号,日志文件等字段
Table2为空,Table1有值。我正在尝试用table1中的条目填充table2。 我可以从table1中检索记录,但是在尝试插入到table2时它失败了。(但插入一个字段有效)
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 :(得分: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
因为我认为它可以为您节省大量时间。