Fehler beim Setzen von n_distinct mit einer plpgsql-Variablen
Ich habe versucht, mit einer Funktion den Wert n_distinct für eine Tabelle festzulegen. Der Code lautet wie folgt:
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);
Erhalten Sie noch die folgenden Fehler:
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
Das Problem kann mit einem @ umgangen werdeEXECUTE
-Anweisung, aber ich frage mich, warum wir in dieser bestimmten Abfrage keine Variable verwenden können. Gibt es eine bestimmte Regel, die ich übersehen habe?