изменить структуру таблицы mysql на рабочем сервере

#mysql

#mysql

Вопрос:

у меня есть таблица sent_laundry в базе данных mysql на рабочем сервере со столбцом first_wash и rewash , как показано ниже:

first_wash перепрошивка
121 124
null 125

я хотел бы изменить структуру, как показано ниже:

wash_type laundry_id
Первая промывка 121
Перепрошивка 124
Перепрошивка 125

Я пытаюсь добиться:

  1. перенос структуры таблицы (успешный)
  2. без потери данных (сбой)

Что я пробовал:

Я изменил столбец таблицы локально и сделал резервную копию. И я восстановил ее в локальном test_scheme . Теперь таблицы в 2 схемах имеют точно такие же столбцы, как wash_type и laundry_id . Но данные в test_scheme заменены данными в исходной / исходной схеме.

Если я использую тот же способ для восстановления таблицы на рабочем сервере, я потеряю данные своего реального пользователя. Могу ли я узнать практический способ переноса таблицы без потери данных в моем случае?

К вашему сведению: я использую «экспорт данных» в MySQLWorkbench для резервного копирования таблицы. и «импорт данных» в MySQLWorkbench для восстановления таблицы.

Любой, у кого есть идея, пожалуйста, поделитесь со мной.

PS: Извините, я не смог лучше описать свой вопрос. Все еще учусь перефразировать вопрос так, чтобы люди могли лучше понять.

Комментарии:

1. Создайте новую таблицу и замените ею старую таблицу.

Ответ №1:

 -- Create new table and fill it with data
CREATE TABLE new_table (wash_type VARCHAR(255), laundry_id INT)
SELECT 'FirstWash' wash_type, first_wash laundry_id 
FROM data_table
WHERE first_wash IS NOT NULL
UNION ALL
SELECT 'Rewash', rewash
FROM data_table
WHERE rewash IS NOT NULL;

-- drop old table
DROP TABLE data_table;

-- rename new table
RENAME TABLE new_table TO data_table;
 

Теперь сделайте резервную data_table копию на тестовом сервере, удалите существующую таблицу на рабочем сервере и восстановите из резервной копии.

Комментарии:

1. Спасибо за вашу идею, вы указали мне направление. На самом деле у меня больше столбцов в таблице, думаю, мне нужно больше изучить, чтобы заставить sql-скрипт работать. Спасибо.