在MySQL中将INT列转换为ENUM列

时间:2018-07-02 13:21:55

标签: mysql sql

我的MySQL表中有以下INT列,其中有两条记录:

enter image description here

我尝试通过以下方式将数据类型更改为ENUM:

`BetalingsStatus` ENUM ('BestillingRegistreret','FakturaSendt','Betalt') NOT NULL,

但是我现有的数据丢失了。如何将现有的INT值转换为ENUM?

1 个答案:

答案 0 :(得分:0)

创建新列:

resolv.conf

更新数据:

ALTER TABLE XXX ADD `BetalingsStatus_Tmp` ENUM('BestillingRegistreret','FakturaSendt','Betalt') NOT NULL DEFAULT '' AFTER BetalingsStatus;

删除旧列:

UPDATE XXXX SET BetalingsStatus_Tmp = CASE BetalingsStatus 
WHEN 0 THEN 'BestillingRegistreret'
WHEN 1 THEN 'FakturaSendt'
WHEN 2 THEN 'Betalt'
END

重命名tmp列:

ALTER TABLE XXX DROP BetalingsStatus;