检查枚举类型是否存在并添加值

发布于 2025-01-29 02:33:13 字数 787 浏览 5 评论 0原文

我是PostgreSQL的新手。如果存在类型,我正在尝试将新值添加到类型:

ALTER type ProcessStatus ADD VALUE IF NOT EXISTS 'Processing';

上面的查询将“处理”添加到类型ProcessStatus,但我想首先检查类型是否存在。

我尝试在下面尝试,

DO $$                                               
BEGIN                                                        
  IF EXISTS(SELECT oid FROM pg_type WHERE typname = 'ProcessStatus')
  THEN                                                        
      ALTER TYPE ProcessStatus ADD VALUE IF NOT EXISTS 'Processing';
  END IF;                                                        
END $$;

当类型不存在时,我会得到此错误:

SQL错误[25001]:错误:Alter类型...添加无法从一个 功能

I'm new to PostgreSQl. I'm trying to add new values to type if type exists:

ALTER type ProcessStatus ADD VALUE IF NOT EXISTS 'Processing';

Above query will add 'Processing' to type ProcessStatus, but I want to check if type exists first.

I tried like below

DO $                                               
BEGIN                                                        
  IF EXISTS(SELECT oid FROM pg_type WHERE typname = 'ProcessStatus')
  THEN                                                        
      ALTER TYPE ProcessStatus ADD VALUE IF NOT EXISTS 'Processing';
  END IF;                                                        
END $;

I get this error when type doesn't exist:

SQL Error [25001]: ERROR: ALTER TYPE ... ADD cannot be executed from a
function

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文