postgresql 如何在plpgsql函数的枚举中添加值

polhcujo  于 2022-11-29  发布在  PostgreSQL
关注(0)|答案(1)|浏览(196)

因此,我有一些简单的函数,应该增加值到一个现有的枚举“专业”,但不是工作,它显示错误

CREATE FUNCTION add_prof(p text) RETURNS VOID AS $$
    BEGIN
        ALTER TYPE profession ADD VALUE p;
        RETURN;
    END;
    $$ LANGUAGE plpgsql;

错误是“[42601]语法错误”。顺便说一句,DataGrip显示“字符串或IF预期但p”。
把p改为' '当然可以,但这不是我需要的。

bjg7j2ky

bjg7j2ky1#

ALTER命令为DDL命令,DDL命令不允许参数化(没有执行计划),需要使用动态SQL:

CREATE FUNCTION add_prof(p text)
RETURNS VOID AS $$
BEGIN
  EXECUTE format('ALTER TYPE profession ADD VALUE %L', p);
  RETURN;
END;
$$ LANGUAGE plpgsql;

相关问题