2016-05-23 7 views
2

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

+-------------+-----------------------+------+-----+---------+----------------+ 
| Field  | Type     | Null | Key | Default | Extra   | 
+-------------+-----------------------+------+-----+---------+----------------+ 
| employee_id | int(16) unsigned  | NO | PRI | NULL | auto_increment | 
| first_name | varchar(20)   | NO |  | NULL |    | 
| last_name | varchar(20)   | NO |  | NULL |    | 
| team  | varchar(20)   | NO |  | No Team |    | 
+-------------+-----------------------+------+-----+---------+----------------+ 

Я хотел бы изменить тип команды из varchar(20) в varchar(128) без повреждения данных в таблице ,

Как мне это сделать?

+3

он не будет поврежден, так как новая длина больше старой. Кроме того, они имеют один и тот же тип. В другом случае, если старая длина больше новой длины, данные не «повреждены», а усечены. – Sherlock

+5

Аналогичный вопрос: https://stackoverflow.com/questions/10184086/mysql-how-to-increase-varchar-size-of-an-existing-column-in-a-database-without – cb0

ответ

0

В таких случаях вы можете:

  • создать резервную копию базы данных, чтобы убедиться, что если что-то пойдет не так, вы все еще есть последняя копия работать с
  • сохранить данные в временно созданную таблицу или столбец
  • сделать изменения и изменить столбец
  • проверить, есть ли какое-либо различие между временнымами и сохранить ваши данные и справиться с потенциальными различиями
  • если это everyt Хин было обработано хорошо, удалить временную таблицу/столбец, если нет, загрузите резервную копию и начать работу с нуля

В данном конкретном случае, не должно быть никаких проблем, так что вы можете решить, следует ли предосторожность доминировать.

0
ALTER TABLE `employee` CHANGE team team VARCHAR(128) NOT NULL DEFAULT 'No Team'; 
Смежные вопросы