【问题标题】:Excel VBA MYSQL Query execution was interrupted, maximum statement execution time exceededExcel VBA MYSQL 查询执行被中断,超过最大语句执行时间
【发布时间】:2020-06-16 05:07:52
【问题描述】:

我正在尝试使用 excel VBA 操作 SQL 查询

从 db_name.table_name 中选择 count(distinct column_name)

但是,我最终得到以下错误:

运行时错误“-2147467259 (80004005)” [MySQL] [ODBC 8.00(w) 驱动程序][mysqld-5. 7.21] 查询执行是 中断,超过最大语句执行时间

表中有 400 万条记录,230 列。我尝试增加“max_execution_time”值,但没有帮助。执行后 30 秒内出现错误。

如何解决这个超时问题?

  • MYSQL 版本 5.7.21(WAMP 32 位)
  • Excel - Office 365

【问题讨论】:

  • 使用直通查询?
  • 我没有安装MS Access,我猜这就是你的意思吧?!
  • 第一次遇到它,让我在一段时间内回复我得到的东西。
  • 您将max_execution_time 设置为什么?更改全局变量后是否重新启动了 MySQL 服务器?请显示实际的 VBA 代码块,包括连接和记录集调用(不是 SQL 的 sn-p 行)。您可以在 ODBC 调用上设置查询时间。

标签: mysql vba execution-time


【解决方案1】:

我一直在努力解决类似的问题。我看到您的帖子是旧帖子,但谁知道呢,也许它仍然可以帮助您或任何寻求解决此问题的人。 我所做的是将 SELECT 过程分批划分。 所以我有一个名为 Unique 的列(它是主键和自动增加的)。 所以在 VBA 中我做了一个 FOR/NEXT 循环,有点像这样:

For i= 0 to 10,000,000
Select * from table where unique>= i and unique< i+1,000,000

然后我将查询复制到另一个单元格,编译所有查询 下一个。

嗯,这不是完美的解决方案,但它对我有用,希望对某人有所帮助!

【讨论】:

    猜你喜欢
    • 2013-07-23
    • 2021-10-07
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    • 2012-03-11
    • 2017-09-05
    • 1970-01-01
    • 2020-04-29
    相关资源
    最近更新 更多