【问题标题】:How do I preserve data when changing column datatypes in MySQL?在 MySQL 中更改列数据类型时如何保留数据?
【发布时间】:2023-04-04 03:13:01
【问题描述】:

例如,假设我有一个TINYINT 列,我想将其更改为ENUM。是否可以编写一个 MySQL 查询,在映射现有数据时更改列的数据类型,以便(例如)0 变为 No1 变为 Yes2 变为 Maybe ?

【问题讨论】:

    标签: sql mysql types


    【解决方案1】:

    在旧列旁边创建新列,使用更新移动数据,然后删除原始列。

    【讨论】:

      【解决方案2】:

      我不确定这在 MySQL 中是否可行,但另一种解决方案是:

      1. 使用新类型和新名称添加新列
      2. 设置新列值(给定旧列值)
      3. 删除旧列
      4. 将新列重命名为与旧列同名

      【讨论】:

      • 好的。我有点希望有一些强大的复杂超级查询,但这应该可以解决问题。 :)
      • 如果有疑问,用简单的方法:-)
      【解决方案3】:

      这需要一系列 4 个步骤- 添加新列,在新列中设置数据,删除旧列,重命名新列

      Use [Databasename]
      Go
      ALTER table [tableName]
      Add [newColumnname] datatype
      GO
      Update [tableName] SET [newColumnname] = [oldColumnname]
      GO
      ALTER table [tableName] Drop Column [oldColumnname]
      GO
      EXEC sp_RENAME 'tableName.newColumnname' , 'oldColumnname', 'COLUMN'
      GO
      

      【讨论】:

        猜你喜欢
        • 2010-11-18
        • 1970-01-01
        • 2021-01-15
        • 2010-11-24
        • 2015-01-07
        • 1970-01-01
        • 1970-01-01
        • 2021-01-05
        • 1970-01-01
        相关资源
        最近更新 更多