【发布时间】:2015-08-31 15:50:02
【问题描述】:
我正在运行一个查询,其中我正在生成一个带有插入的表变量。这意味着我可以通过大量插入使查询变得非常大。当我通过 sqlalchemy 会话执行此查询时,只要插入的数量或我怀疑查询的长度足够小,它就会按预期运行。当它太大时,什么也不会发生。这有意义吗?我可以设置可配置的查询限制吗?还是我必须将我的查询分成几部分?
谢谢, 皮尔
【问题讨论】:
标签: python sqlalchemy
我正在运行一个查询,其中我正在生成一个带有插入的表变量。这意味着我可以通过大量插入使查询变得非常大。当我通过 sqlalchemy 会话执行此查询时,只要插入的数量或我怀疑查询的长度足够小,它就会按预期运行。当它太大时,什么也不会发生。这有意义吗?我可以设置可配置的查询限制吗?还是我必须将我的查询分成几部分?
谢谢, 皮尔
【问题讨论】:
标签: python sqlalchemy
您的 dbms 可能已达到允许数据包的最大长度。如果您在后端使用 MySQL,我建议您将 max_allowed_packet 设置为更高的值,例如 512000000。或者研究类似的解决方案,以防您使用其他 dbms。
对于我使用的 MySQL:
engine.execute('SET GLOBAL max_allowed_packet=512000000;')
在服务器重新启动之前全局设置此值。如果您有足够的权限,可以将其添加到您的my.ini/my.cnf。
我不知道从 SQLAlchemy 以与 dbms 无关的方式执行此操作的方法。
【讨论】: