For example, suppose I have a TINYINT
column that I want to change into an ENUM
. Is it possible to write a MySQL query that changes the datatype of the column while mapping the existing data so that (for example) 0
becomes No
, 1
becomes Yes
, and 2
becomes Maybe
?
views:
22answers:
2
+1
A:
create the new column next to the old column, use an update to move the data over, then delete the original column.
SorcyCat
2010-08-23 13:22:20
+2
A:
I'm not sure if this is possible in MySQL, but an alternative solution would be to:
- Add the new column with the new type with a new name
- Set the new column values (given the old column values)
- Drop the old column
- Rename the new column to have the same name as the old column
stark
2010-08-23 13:23:10
Alright. I was kinda hoping for some beefy complex super-query, but this should do the trick. :)
DLH
2010-08-23 13:52:00
If in doubt, do it the simple way :-)
stark
2010-08-23 13:56:51