假设我们有一个名为“mytable”的表:
| 名称 [varchar] | 饮食习惯 [int] |
|---|---|
| 安娜 | 1 |
| 罗兰 | 3 |
| 塞普 | 1 |
| 凯特琳 | 2 |
| 卢卡斯 | 4 |
| 海德薇 | 3 |
现在我意识到我想将“eating_habits”列更改为具体的。我创建自己的枚举类型:
CREATE TYPE diet AS ENUM ('vegetarian', 'vegan', 'omni');
Run Code Online (Sandbox Code Playgroud)
我想要的是将“eating_habits”列的类型更改为“饮食”。为此,我还想在这样的类型之间进行映射
1 --> 'vegan'
2 --> 'vegetarian'
rest --> 'omni'
Run Code Online (Sandbox Code Playgroud)
我该怎么办呢?我知道可以像这样使用 USING 子句:
ALTER TABLE mytable
ALTER COLUMN eating_habits TYPE diet
USING (
<Expression>
)
Run Code Online (Sandbox Code Playgroud)
但我不知道“表达”应该是什么,而且网上的绝大多数例子都是琐碎的转换。