【问题标题】:Postgres Update column with Enum from stringPostgres 使用字符串中的枚举更新列
【发布时间】:2018-05-14 20:50:55
【问题描述】:

我正在构建迁移。将列从字符串更改为 Enum-Type 并希望将保存的值作为 Enum 插入表中,但不知道如何执行此操作。我将我的值插入到一个新表中,删除了列,使用枚举类型创建了它,并且只获得了新表中的字符串。该字符串与枚举具有相同的文本。 代码是:

UPDATE event_participations
    SET kind = participations_migration.kind
    FROM participations_migration
    WHERE participations_migration.part_id = event_participations.id

Participations_type 是枚举的名称,其值为“going”、“not_going”。现在我在participants_migration.kind 中有字符串,并且想要获取枚举值来更新event_participations.kind。

我需要一个子选择或连接来根据在participants_migration.kind 中设置的字符串使用枚举值更新event_participations。 有什么想法吗?

【问题讨论】:

    标签: postgresql enums migration


    【解决方案1】:

    如果文本与枚举成员文本相同,则强制转换为枚举类型就足够了。

        SET kind = participations_migration.kind::participations_type
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      相关资源
      最近更新 更多