在MySQL中更改列数据类型时如何保留数据?
例如,假设我有一个在MySQL中更改列数据类型时如何保留数据?,sql,mysql,types,Sql,Mysql,Types,例如,假设我有一个TINYINT列,我想将其更改为ENUM。是否可以编写一个MySQL查询,在映射现有数据时更改列的数据类型,以便(例如)0变为No,1变为Yes,2变为Maybe?在旧列旁边创建新列,使用更新来移动数据,然后删除原始列。我不确定这在MySQL中是否可行,但另一种解决方案是: 添加具有新名称的新类型的新列 设置新列值(给定旧列值) 删除旧列 重命名新列,使其与旧列同名 这需要一系列的4个步骤- 添加新列、在新列中设置数据、删除旧列、重命名新列 Use [Databasename]
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
好吧我有点希望得到一些强大而复杂的超级查询,但这应该可以做到如果有疑问,请用简单的方法执行:-)