【发布时间】:2016-07-01 17:17:59
【问题描述】:
我尝试使用函数来设置表的 n_distinct 值。代码如下:
create temporary table _temp
(
id integer
);
create function pg_temp.setdistinct(_cnt real)
returns void as $$
begin
alter table _temp
alter column id set (n_distinct=_cnt);
end
$$ language plpgsql;
select pg_temp.setdistinct(1000);
仍然收到以下错误:
ERROR: invalid value for floating point option "n_distinct": _cnt CONTEXT: SQL statement "alter table _temp alter column id set (n_distinct=_cnt)" PL/pgSQL function pg_temp_3.setdistinct(real) line 3 at SQL statement
可以使用EXECUTE 语句绕过该问题,但我想知道为什么我们不能在此特定查询中使用变量。有没有我忽略的特定规则?
【问题讨论】:
标签: postgresql plpgsql dynamic-sql alter-table