Я хочу создать новую (постоянную) таблицу из результатов рекурсивного запроса в SQLite. Например, давайте создадим таблицу со столбцами (n, fct)
, где n
обозначает натуральное число и fct
его факториал:
-- factorial of n = 0, 1, ..., 5
WITH RECURSIVE fact_i (n, fct) AS (
VALUES (0, 1)
UNION ALL
SELECT n+1, fct * (n+1) FROM fact_i
WHERE n < 5)
SELECT * FROM fact_i;
, что приводит к
0|1
1|1
2|2
3|6
4|24
5|120
ОднакоЯ хотел бы сохранить результаты в постоянной таблице, скажем factorials
.
Я пытался
CREATE TABLE factorials (n, fct) AS
WITH RECURSIVE fact_i (n, fct) AS (
VALUES (0, 1)
UNION ALL
SELECT n+1, fct * (n+1) FROM fact_i
WHERE n < 5)
SELECT * FROM fact_i;
или
WITH RECURSIVE fact_i (n, fct) AS (
VALUES (0, 1)
UNION ALL
SELECT n+1, fct * (n+1) FROM fact_i
WHERE n < 5)
CREATE TABLE factorials (n, fct) AS
SELECT * FROM fact_i;
Все же оба результата приводят ксинтаксическая ошибка. Есть ли способ создать такую таблицу в SQLite?