如何删除递归查询中的默认架构?

问题描述 投票:0回答:1

我正在尝试在 MySQL Workbench 上运行此“WITH”查询:

WITH countUp AS (SELECT 1 as N
        UNION ALL
                SELECT n+1 FROM countUp WHERE n < 3)
SELECT * from countUp;

此递归选择的描述如下:https://builtin.com/data-science/recursive-sql

但是工作台正在尝试将数据库名称附加到“countUp”上。向我显示以下错误:

错误代码:1146。表“my_test_database.countUp”不存在

如何禁用默认架构或至少为此查询禁用它?

sql mysql mysql-workbench
1个回答
0
投票

您正在尝试在 MySQL 中使用递归 CTE 运行查询。

MySQL 的语法要求在 CTE 子句中添加关键字

RECURSIVE
,如下所示:

WITH recursive countUp AS (SELECT 1 as N
        UNION ALL
                SELECT n+1 FROM countUp WHERE n < 3)
SELECT * from countUp;

结果:

N
--
1
2
3

请参阅 db<>fiddle 处的运行示例。

如果没有

RECURSIVE
关键字,所有 CTE 都需要基于实际表。这就是 MySQL 试图告诉你的。

© www.soinside.com 2019 - 2024. All rights reserved.