Carpe Diem

  Top > スポンサー広告> MySQL > MySQL 既存のデータ構造の編集  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MySQL 既存のデータ構造の編集

2012 - 08/09 [Thu] - 20:41

文字コードを設定ファイルで指定する前にDBを作成してしまい、あとから変更することを余儀なくされた、といった場面を想定しています。

◆データベースの文字コードを後から変更
まずはDBの構造を確認します。
mysql> status;
Server characterset:    utf8
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8



文字コードを変更します。
mysql> ALTER DATABASE データベース名 character set utf8;

mysql> status;
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8


ちゃんと変更されます。


◆テーブルの文字コードの変更
テーブルの文字コード確認します。
mysql> SHOW CREATE TABLE テーブル名 \G;

テーブルの文字コード変換します。
mysql> ALTER TABLE テーブル名 CHARSET=utf8;


◆テーブル名の変更
変更前:pre_table
変更後:post_table

とすると

mysql> ALTER TABLE pre_table RENAME TO post_table;


◆新しい列や制約の追加 – ADD句
ALTER TABLE <テーブル名> ADD COLUMN <列名> <型名> [<制約>];

という書式になります。ADD句をカンマ「,」で繋ぐことにより一文で複数のカラムや制約を追加することが出来ます。また新しい列の挿入箇所はFIRSTやAFTER句で指定することが出来ます。

Ex)
mysql> ALTER TABLE test_table
    -> ADD COLUMN new_column VARCHAR(256) NOT NULL,
    -> ADD COLUMN new_column2 TEXT NOT NULL;
    -> AFTER old_column1;



◆既存の列の構造(列名、型、制約)を変更 – CHANGE COLUMN句
ALTER TABLE <テーブル名> CHANGE COLUMN <既存の列名> <新しい列名> <型名> <制約>;

という書式。

Ex)
mysql> ALTER TABLE test_table
    -> CHANGE COLUMN old_field new_field INT(11) NOT NULL AUTO_INCREMENT;



◆列名を変更せずに既存の列のデータ型・制約を変更 – MODIFY句
ALTER TABLE <テーブル名> MODIFY COLUMN <既存の列名> <新しいデータ型名> [<制約>];


◆既存の列の削除 – DROP句
ALTER TABLE <テーブル名> DROP COLUMN <対象の列名>;



ソース:
MySQL データベースの文字コードを後から変換する
MySQL: 既存テーブルの構造の変更 – ALTER TABLE文、CHANGE COLUMN句

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。