【发布时间】:2023-04-04 03:13:01
【问题描述】:
例如,假设我有一个TINYINT 列,我想将其更改为ENUM。是否可以编写一个 MySQL 查询,在映射现有数据时更改列的数据类型,以便(例如)0 变为 No,1 变为 Yes,2 变为 Maybe ?
【问题讨论】:
例如,假设我有一个TINYINT 列,我想将其更改为ENUM。是否可以编写一个 MySQL 查询,在映射现有数据时更改列的数据类型,以便(例如)0 变为 No,1 变为 Yes,2 变为 Maybe ?
【问题讨论】:
在旧列旁边创建新列,使用更新移动数据,然后删除原始列。
【讨论】:
我不确定这在 MySQL 中是否可行,但另一种解决方案是:
【讨论】:
这需要一系列 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
【讨论】: