我有一个python函数( pyfunc ):
def pyfunc(x):
...
return someString
我想将此函数应用于mysql表列中的每个项目, 类似的东西:
UPDATE tbl SET mycol=pyfunc(mycol);
此更新包含数千万条记录。 有没有一种有效的方法呢?
注意:我无法用sql或任何其他编程语言重写此函数。
答案 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查询来更新数据。
我认为这是一个不错的解决方案。