我正在尝试使用WHILE LOOP从PSQL shell中的表集合中插入列。代码如下:
\set start_id 909
\set end_iter 912
-- Create base table to be later inserted
DROP TABLE IF EXISTS t_base_table;
CREATE TEMP TABLE t_base_table (
...
)
DISTRIBUTED RANDOMLY;
SELECT :start_id AS iter \gset
BEGIN
WHILE :iter <= :end_iter LOOP
\set weekly 'table_i_want_col_from_':iter
INSERT INTO t_base_table
SELECT ... --same columns as in the base table
FROM :weekly a
GROUP BY 1,2,3,4,5,6
SELECT :iter+1 AS iter \gset
END LOOP;
END;
我收到了几条错误消息:
看起来当我运行脚本时,它在psql shell中被拆分(因此上面第3项中的“LINE 1”)。我想知道是因为这个语法对psql shell无效吗?或者我是以错误的方式使用\ set或\ gset。
提前感谢您提供的任何帮助!!