gpt4 book ai didi

postgresql - 如何正确解析 postgresql 中的迭代器?

转载 作者:行者123 更新时间:2023-11-29 13:51:36 25 4
gpt4 key购买 nike

我有一个巨大的 OSM 数据集,其中包含许多我想删除的仅空列。

DO
$do$
DECLARE
_column TEXT;
BEGIN
FOR _column IN
SELECT attname
FROM pg_stats where tablename = 'rail_l'
and most_common_vals is null
and most_common_freqs is null
and histogram_bounds is null
and correlation is null
and null_frac = 1
LOOP
RAISE NOTICE '%', _column;
EXECUTE
'ALTER TABLE rail_l DROP COLUMN ' || _column;
END LOOP;
END
$do$

包含冒号的列名会导致以下错误:

ERROR: syntax error at or near ":"
LINE 1: ALTER TABLE rail_l DROP COLUMN generator:source

QUERY: ALTER TABLE rail_l DROP COLUMN generator:source
CONTEXT: PL/pgSQL function inline_code_block line 16 at EXECUTE statement
SQL state: 42601

这可能是一个初学者的问题,因为到目前为止我只将 postgresql 用于简单的查询,但我很乐意接受任何建议。

最佳答案

使用format()使用说明符 %I:

...
LOOP
RAISE NOTICE '%', _column;
EXECUTE format('ALTER TABLE rail_l DROP COLUMN %I', _column);
END LOOP;
...

关于postgresql - 如何正确解析 postgresql 中的迭代器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40063621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com