sqlite python 插入

2 投票
1 回答
995 浏览
提问于 2025-04-15 18:25

我之前问过类似的问题,这里详细解释一下我想要实现的目标。

我有两个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],));

还有,请告诉我在插入失败时如何生成更有用的错误信息。

1 个回答

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,因为我觉得它可以帮你节省很多时间。

撰写回答