2016-05-23 6 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(128)varchar(20)からチームのタイプを変更したいです。

どうすればよいですか?このような場合には

+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'; 
関連する問題