例如,假设我有一个TINYINT
列,我想将其更改为ENUM
。是否可以编写一个MySQL查询,在映射现有数据时更改列的数据类型,以便(例如)0
变为No
,1
变为Yes
,并且2
变为Maybe
?
答案 0 :(得分:6)
我不确定这在MySQL中是否可行,但另一种解决方案是:
答案 1 :(得分:1)
在旧列旁边创建新列,使用更新移动数据,然后删除原始列。
答案 2 :(得分:0)
这需要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