Par exemple, supposons que j'ai une colonne code> tinyint code> que je souhaite passer en un Enum code>. Est-il possible d'écrire une requête MySQL qui modifie le type de données de la colonne tout en mappant les données existantes afin que (par exemple) 0 code> devient non code>, 1 Code> devient oui code> et 2 code> devient peut-être code>? p>
3 Réponses :
Créer la nouvelle colonne à côté de l'ancienne colonne, utilisez une mise à jour pour déplacer les données sur, puis supprimer la colonne d'origine. P>
Je ne sais pas si cela est possible dans MySQL, mais une solution alternative serait de: p>
Bien. J'étais un peu en espérant une super-requête complexe de costume, mais cela devrait faire l'affaire. :)
En cas de doute, faites-le le moyen simple :-)
Ceci nécessite une séquence de 4 étapes- Ajoutez une nouvelle colonne, définissez les données dans la nouvelle colonne, déposez une colonne ancienne, renommez la nouvelle colonne
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