gpt4 book ai didi

postgresql - 如何更改现有 postgres 枚举的顺序

转载 作者:行者123 更新时间:2023-12-05 00:58:57 27 4
gpt4 key购买 nike

我有一个 postgres 枚举想要更改其默认排序顺序

我了解了 pg_enum 类型 enumsortorder但还没有找到任何关于如何更改订单的文档。

我对上下文的枚举:

CREATE TYPE day AS ENUM (
'everyday',
'sunday',
'monday',
'tuesday',
'wednesday',
'thursday',
'friday',
'saturday'
);

目前,当我按天检索订单时,我从“每天”到“星期六”。我想从周一到周日获取,并将 Everyday 作为最后一个值。

这可能吗?

最佳答案

您只能将类型替换为新类型,这可能有点费力。例如:

BEGIN;

-- drop views, functions which are using day

ALTER TYPE day RENAME TO day_old;
CREATE TYPE day AS ENUM (
'everyday',
'monday',
'tuesday',
'wednesday',
'thursday',
'friday',
'saturday',
'sunday'
);

ALTER TABLE x ALTER my_day TYPE day USING my_day::TEXT::day;
ALTER TABLE y ALTER your_day TYPE day USING your_day::TEXT::day;
-- etc. etc.
-- Recreate views, functions which are using day
DROP TYPE day_old;

END;

关于postgresql - 如何更改现有 postgres 枚举的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55305793/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com