MySQL Error number: 3574; Symbol: ER_CTE_RECURSIVE_REQUIRES_NONRECURSIVE_FIRST; SQLSTATE: HY000 报错
文档解释
Error number: 3574; Symbol: ER_CTE_RECURSIVE_REQUIRES_NONRECURSIVE_FIRST; SQLSTATE: HY000
Message: Recursive Common Table Expression ‘%s’ should have one or more non-recursive query blocks followed by one or more recursive ones
错误说明:
ER_CTE_RECURSIVE_REQUIRES_NONRECURSIVE_FIRST,这是一个MySQL错误码,在使用递归查询表表达式(CTE)时报出。它表明你必须在使用递归CTE之前先使用非递归CTE,以保证递归查询表表达式的正确性。
常见案例
当尝试使用CTE进行递归查询时,MySQL就会报出ER_CTE_RECURSIVE_REQUIRES_NONRECURSIVE_FIRST错误,而将非递归先行查询写在递归查询之前,由于无法正常查询,就会报出ER_CTE_RECURSIVE_REQUIRES_NONRECURSIVE_FIRST错误。
解决方法:
要解决 ER_CTE_RECURSIVE_REQUIRES_NONRECURSIVE_FIRST 的错误,首先需要理解CTE语法,如果使用了递归CTE,则必须先使用非递归CTE。为了使查询正确,请将非递归CTE条件放在递归CTE中,并且保证非递归CTE已被正确查询。此外,必须确保用于创建CTE的表或子查询已被正确存在,否则不会正确查询结果,也会报出 ER_CTE_RECURSIVE_REQUIRES_NONRECURSIVE_FIRST 的错误。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341