【问题标题】:Change Column datatype with existing enum col in laravel使用 laravel 中的现有枚举列更改列数据类型
【发布时间】:2019-01-21 21:55:25
【问题描述】:

我的项目有一个用户表,我的表中已经有列角色(枚举 ['admin','student','teacher']),我想更改指定列('string') ,但是根据 laravel 文档,我们无法使用枚举数据类型更新列,所以在这种情况下我应该怎么做,我是 laravel 的新手。

【问题讨论】:

  • 您可以添加新列,然后编写迁移以传输数据,然后删除旧列。
  • 更改直接数据库文件类型,不会丢失任何数据。
  • @mike 他不想更改枚举列,他已经有枚举列并且他想更改另一列。
  • 啊抱歉,目标似乎是将枚举列更改为字符串。如果不是这种情况,那么我不确定用户的意图是什么。您能否添加一些上下文和代码示例或错误消息?

标签: database laravel


【解决方案1】:

添加一个数据类型为字符串的新列,然后编写一个简单的查询来更新以将枚举值复制到字符串列中

update tableName set columnA = ColumnB; 

然后删除枚举类型的旧列。

如果您想使用迁移,则首先创建迁移以添加字符串列,然后运行查询以将数据复制到字符串列中。现在编写另一个迁移以删除具有枚举类型的列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-08
    • 1970-01-01
    • 1970-01-01
    • 2019-02-20
    • 2020-11-22
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    相关资源
    最近更新 更多