gpt4 book ai didi

Python MySQLdb 从另一个数据库中选择并插入

转载 作者:行者123 更新时间:2023-11-28 20:47:14 25 4
gpt4 key购买 nike

我有一个看起来像这样的表:

part    min    max    unitPrice
A 1 9 10
A 10 99 5
B 1 9 11
B 10 99 6
...

我还有一个生产表,我需要将以前的数据插入到这个生产表中。当我从一个表执行 select 语句并获取记录时,我很难插入另一个表。

cursor_table1.execute('select part, min, max, unitPrice, now() from table1')
for row in cursor_table1.fetchall():
part, min, max, unitPrice, now = row
print part, min, max, unitPrice, now

结果是

'416570S39677N1043', 1L, 24L, 48.5, datetime.datetime(2018, 10, 8, 16, 33, 42)

我知道 Python 可以巧妙地计算出每一列的类型,但实际上我只想要原始内容。所以我可以做这样的事情:

cursor_table1.execute('select part, min, max, unitPrice, now() from table1')
for row in cursor_table1.fetchall():
cursor_table2.execute('insert into table2 values ' + str(tuple(row)))

问题是如何简单地从一个表中执行 select 语句并将其添加到另一个表中。

如果我没有清楚地描述我的问题,请告诉我,如果您愿意,我可以添加额外的信息。

最佳答案

回答这个问题可能有点晚,但我也遇到了同样的问题并登陆了这个页面。现在,我碰巧找到了一个不同的答案,并认为与遇到同样问题的其他人分享它可能会有所帮助。

我有两个 mysql 服务器,一个在 Raspberry Pi 上,另一个在 VPS 上,我必须通过读取 RPi 上的数据并将数据插入 VPS 来同步这两个服务器之间的数据。我通过编写循环并一条一条地捕获记录并插入它们来完成这件事,这真的很慢,2000 个数据集花了大约 2 分钟。

现在我使用executemany 函数解决了这个问题。至于数据,我使用 fetchall 函数获得了 select 返回的所有元组。

rows = x.fetchall()
y.executemany("insert into table2 (f1, f2, f3) values (%s,%s,%s);", rows)

而且速度 super 快😀,5000条记录用了大约2秒。

关于Python MySQLdb 从另一个数据库中选择并插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19257992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com