我有一个 Postgres 8.4 表,其中包含类型为“字符变化”的列,但我想将它们转换为枚举类型。
尝试更改表格时
ALTER TABLE logs ALTER COLUMN interface_type TYPE interface_types
USING interface_type::text::interface_types;
Run Code Online (Sandbox Code Playgroud)
我收到一个错误
default for column "interface_type" cannot be cast to type interface_types
Run Code Online (Sandbox Code Playgroud)
该列的默认值是枚举类型中值的文本版本。所以这应该是可能的,尽管我没有运气谷歌搜索解决方案。
我假设我需要为它定义一个演员表。如何?
我想我找到了答案:我需要先删除默认值,然后重新添加它。
ALTER TABLE logs ALTER COLUMN interface_type DROP DEFAULT;
ALTER TABLE logs ALTER COLUMN interface_type TYPE interface_types
USING interface_type::text::interface_types;
ALTER TABLE logs ALTER COLUMN interface_type SET DEFAULT 'button';
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5446 次 |
最近记录: |