带递归和更新内部连接的mariadb sql

yhived7q  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(261)

查询:

WITH RECURSIVE CTE AS(
SELECT 1 AS b, 10 AS a

UNION ALL
SELECT b+1, a+10 FROM CTE WHERE b < 5 )

UPDATE uptable a
INNER JOIN 
(
   SELECT b,a
   FROM CTE 
) c
ON a.a = c.b
SET a.a = c.a

表格:

UPTABLE(
a INT
)

数据1,2,3,4,5
出现sql语法错误。
eversql查询语法检查验证程序此查询有效(&V)

laik7k3q

laik7k3q1#

https://mariadb.com/kb/en/with/ 显示语法引用:

WITH [RECURSIVE] table_reference [(columns_list)] AS  (
  SELECT ...
)
[CYCLE cycle_column_list RESTRICT]
SELECT ...

它支持以前使用cte SELECT 但不是在其他sql语句之前,例如 UPDATE .
其他一些sql实现支持cte语法,后跟 UPDATE ,包括mysql 8.0、postgresql、sqlite、microsoft sql server、informix。。。
mariadb显然实现了功能的一个子集。

相关问题