【发布时间】:2019-07-16 16:12:10
【问题描述】:
我想写一个返回随机枚举值的函数random_enum(enum_name)
我已停止使用此变体
create type myenum
as enum (
'one',
'two',
'three',
'four'
);
create or replace function random_enum(relation_name anyelement) returns anyenum as $$
begin
return execute format(
$sql$
select unnest(enum_range(NULL::%1$I)) ORDER BY random() LIMIT 1;
$sql$,
pg_typeof(relation_name)
);
end;
$$ language plpgsql;
select random_enum(null::myenum)
但它不起作用,因为
ERROR: syntax error at or near "("
LINE 12: return execute format(
【问题讨论】:
标签: postgresql plpgsql