gpt4 book ai didi

postgresql - 将 int 列升级为 postgresql 中的枚举类型

转载 作者:行者123 更新时间:2023-11-29 11:59:15 26 4
gpt4 key购买 nike

关注此question我想知道是否有优雅的方式对 int 值做同样的事情。

更准确地说,给定一个具有固定数量值(不一定连续)的整数列,我将如何将每个数字映射到每个枚举值。当我说 map 时,我的意思是迁移

例如:让我们假设枚举是 as

CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');

我们想映射:

0 -> 'sad'
1 -> 'ok'
10 -> 'happy'

比方说,我们有一个表,其中包含一个名为 mood 的列,其值仅为 {0,1,10}。

此外,我看不到答案 here帮助我。

我使用 Postgres 9.5

最佳答案

USING 子句是一个表达式,告诉 postgresql 如何转换值。这是您可能在 SELECT 中使用的表达式。因此,如果您需要指定映射,则只需使用 CASE 语句即可。

alter table foo 
alter bar type mood
using
case bar
when 0 then 'sad'
when 1 then 'ok'
when 10 then 'happy'
end :: mood;

关于postgresql - 将 int 列升级为 postgresql 中的枚举类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39316035/

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