MySQL Error number: 3636; Symbol: ER_CTE_MAX_RECURSION_DEPTH; SQLSTATE: HY000 报错 故障修复 远程处理

文档解释

Error number: 3636; Symbol: ER_CTE_MAX_RECURSION_DEPTH; SQLSTATE: HY000

Message: Recursive query aborted after %u iterations. Try increasing @@cte_max_recursion_depth to a larger value.

错误说明:

ER_CTE_MAX_RECURSION_DEPTH错误表示MySQL中Common Table Expression(CTE)中递归的层次太深。在MySQL 5.7中,默认的CTE最大递归深度为100。

常见案例

当CTE以递归方式使用时,若递归深度超过设定的最大值,就会出现ER_CTE_MAX_RECURSION_DEPTH错误。

解决方法:

要解决这个错误,你可以选择增加cte_max_recursion_depth参数的值,将其设置为所需的递归深度。另一个做法是,重构CTE,减少CTE执行期间递归层级,尽量减少循环次数,以减少深度。


数据运维技术 » MySQL Error number: 3636; Symbol: ER_CTE_MAX_RECURSION_DEPTH; SQLSTATE: HY000 报错 故障修复 远程处理