mysql:通过应用python函数更新数百万条记录

时间:2016-12-20 07:54:16

标签: python mysql

我有一个python函数( pyfunc ):

def pyfunc(x):
    ...
    return someString

我想将此函数应用于mysql表列中的每个项目, 类似的东西:

UPDATE tbl SET mycol=pyfunc(mycol);

此更新包含数千万条记录。 有没有一种有效的方法呢?

注意:我无法用sql或任何其他编程语言重写此函数。

2 个答案:

答案 0 :(得分:0)

如果你的pyfunc不依赖于apis或任何缓存之类的其他数据源,并且只是进行一些数据处理,比如字符串或数学操作,或者依赖于存储在mysql中相同数据库中的数据,你应该去{{3 }}

让我们假设您创建了一个名为colFunc的MySQL函数,然后您的查询将是

Update tbl set mycol=colFunc(mycol)

答案 1 :(得分:0)

使用python update.sql准备script文件。

在此之后,您可以检查本地计算机上的更新(使用db转储)。只需连接到sql并运行从python编写的update.sql脚本。

在这种情况下,您将使用不带python的原始sql查询来更新数据。

我认为这是一个不错的解决方案。