我正在运行一个查询,其中我生成一个带插入的表变量。这意味着我可以使用大量插入使查询非常大。当我通过sqlalchemy会话执行此查询时,只要插入的数量或我怀疑查询的长度足够小,它就会按预期运行。当它太大时,没有任何反应。这有意义吗?我可以设置可配置的查询限制吗?或者我是否必须将我的查询分成几部分?
谢谢, PIR
答案 0 :(得分:3)
您可能已达到dbms允许的最大数据包长度。如果您在后端使用MySQL,我建议您将max_allowed_packet
设置为更高的值,例如512000000。或者,如果您使用其他dbms,请研究类似的解决方案。
对于MySQL,我使用:
engine.execute('SET GLOBAL max_allowed_packet=512000000;')
全局设置此值,直到服务器重新启动。如果您有足够的权限,可以将其添加到my.ini
/ my.cnf
。
我不知道从SQLAlchemy以dbms无关的方式执行此操作的方法。