Преобразование столбца INT в столбец ENUM в MySQL - PullRequest
0 голосов
/ 02 июля 2018

В моей таблице MySQL есть следующий столбец INT с двумя записями:

enter image description here

Я попытался изменить тип данных на ENUM с помощью следующего:

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

Но мои существующие данные пропадают. Как мне преобразовать мои существующие значения INT в ENUM?

1 Ответ

0 голосов
/ 03 июля 2018

создать новый столбец:

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

Удалить старый столбец:

ALTER TABLE XXX DROP BetalingsStatus;

Переименовать столбец tmp:

ALTER TABLE XXX CHANGE BetalingsStatus_Tmp BetalingsStatus ENUM('BestillingRegistreret','FakturaSendt','Betalt') NOT NULL;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...