On Mon, 17 Aug 2015 20:08:23 +0200, "R.Smith" <rsmith at rsweb.co.za> wrote:
> CORRECTION: It seems one of the two options I've mentioned earlier, > namely the CREATE TABLE AS SELECT... does not actually work on the back > of a WITH clause. The other option still do, but this request has more > appeal now. CREATE TABLE works if you swap the order of CREATE and WITH: $ cat ~/sql/test.sql .head on .echo on -- syntax error WITH RECURSIVE generate AS ( SELECT 1 AS seqno UNION ALL SELECT seqno+1 FROM generate WHERE seqno < 10) CREATE TABLE table_of_i1 AS SELECT seqno FROM generate ORDER BY seqno; -- accepted CREATE TABLE table_of_i2 AS WITH RECURSIVE generate AS ( SELECT 1 AS seqno UNION ALL SELECT seqno+1 FROM generate WHERE seqno < 10) SELECT seqno FROM generate ORDER BY seqno; PRAGMA table_info(table_of_i2); -- alternative syntax CREATE TABLE table_of_i3 (seqno INTEGER PRIMARY KEY NOT NULL); WITH RECURSIVE generate AS ( SELECT 1 AS seqno UNION ALL SELECT seqno+1 FROM generate WHERE seqno < 10) INSERT INTO table_of_i3 (seqno) SELECT seqno FROM generate ORDER BY seqno; PRAGMA table_info(table_of_i3); .dump -- Regards, Cordialement, Groet, Kees Nuyt