mysql変更テーブル

2607 ワード

テーブルの構造は次のとおりです.
mysql> show create table person;
| person | CREATE TABLE `person` (
  `number` int(11) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `birthday` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |

列を削除:
ALTER TABLE person DROP COLUMN birthday; 

列を追加:
ALTER TABLE person ADD COLUMN birthday datetime;

列を変更し、numberをbigintに変更します.
ALTER TABLE person MODIFY number BIGINT NOT NULL;

またはnumberをidに変更し、bigintのタイプを指定します.
ALTER TABLE person CHANGE number id BIGINT;

 
プライマリ・キーの追加:
ALTER TABLE person ADD PRIMARY KEY (id);

プライマリ・キーの削除:
ALTER TABLE person DROP PRIMARY KEY;

ユニークなインデックスを追加するには、次の手順に従います.
ALTER TABLE person ADD UNIQUE name_unique_index (`name`);

nameという列に一意のインデックスが作成され、インデックスの名前はname_unique_index.
 
通常のインデックスを追加するには、次の手順に従います.
ALTER TABLE person ADD INDEX birthday_index (`birthday`);

 
索引の削除:
ALTER TABLE person DROP INDEX birthday_index;
ALTER TABLE person DROP INDEX name_unique_index;

 
ユニークでないインデックスの無効化
ALTER TABLE person DISABLE KEYS;

ALTER TABLE...DISABLE KEYSはMySQLにMyISAMテーブルのユニークでないインデックスの更新を停止させます.
ユニークでないインデックスのアクティブ化
ALTER TABLE person ENABLE KEYS;

ALTER TABLE ... ENABLE KEYSが失われたインデックスを再作成します.
 
テーブルのデフォルトの文字セットとすべての文字列(CHAR,VARCHR,TEXT)を新しい文字セットに変更します.
ALTER TABLE person CONVERT TO CHARACTER SET utf8;

テーブルの列のエンコーディングを変更する
ALTER TABLE person CHANGE name name varchar(255) CHARACTER SET utf8;

1つのテーブルのデフォルト文字セットのみを変更
ALTER TABLE person DEFAULT CHARACTER SET utf8;

テーブル名の変更
RENAME TABLE person TO person_other;

テーブルを別のデータベースに移動
RENAME TABLE current_db.tbl_name TO other_db.tbl_name;