Yan*_*eve 3 postgresql enums database-migration
在这个问题之后,我想知道是否有一种优雅的方式对 int 值执行相同的操作。
更准确地说,给定一个具有固定数量值(不一定是连续的)的 Integer 列,我将如何将每个数字映射到每个枚举值。当我说地图时,我的意思是迁移
例如:让我们假设枚举是
CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');
Run Code Online (Sandbox Code Playgroud)
我们想要绘制地图:
0 -> 'sad'
1 -> 'ok'
10 -> 'happy'
Run Code Online (Sandbox Code Playgroud)
假设我们有一个表,其中包含名为“心情”的列,其值仅为 {0,1,10}。
另外,我看不出这里的答案对我有帮助。
我使用 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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1368 次 |
| 最近记录: |