人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

mysql に関する質問です。テーブルの項目ごとの照合順序を latin1_swedish_ci から ujis_japanese_ci に変更したいのですが、どう書くのでしょうか? テーブル全体の照合順序は、phpMyAdminで簡単に変更できるのですが、個別のテーブル項目は簡単に変更できないようです。

●質問者: kaiketsu
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:MySQL phpMyAdmin
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● GreenStar
●27ポイント

個別のテーブル項目

変更は不可能! 指定できるのはテーブル作成時のみ!!

http://dev.mysql.com/doc/refman/4.1/ja/charset-column.html


残念だが、新しいテーブルを作って、レコードをコピーするしかない!


2 ● rouge_2008
●27ポイント

テーブルの項目(カラム)の照合順序を変更したいのですね?

新しく追加するデータで反映されれば良いのでしたら、phpMyAdminから簡単に変更できます。

※既に挿入されているデータは文字化けします。

1.phpMyAdminにログインして目的のデータベースのテーブルを表示します。

2.「構造」タブをクリック

3.目的のカラムの変更アイコン(鉛筆の絵)をクリック

4.「照合順序」で「ujis_japanese_ci」を選択

5.「保存する」ボタンをクリック

※phpMyAdminのバージョンによってメニューの遷移順が違う可能性があります。

SQL文で実行するには以下のように実行します。

LTER TABLE テーブル名 MODIFY カラム名 カラムのタイプ CHARACTER SET ujis;

http://dev.mysql.com/doc/refman/5.1/ja/charset-conversion.html


文字化けさせずに照合順序を変更したい場合は、ダンプデータを出力してから戻すしかないと思います。

方法は、以下のフォーラムの記事を参考にしてください。

http://www.xugj.org/modules/QandA/index.php?topic_id=1472

具体的には、ターミナル(winの場合はコマンドプロンプト)から、コマンド操作で以下を実行してバックアップします。

mysqldump --user=ユーザー名 --password=パスワード --default-character-set=latin1
 データベース名 > 保存するファイルパス+ファイル名.sql

次に、出力したファイル中の「latin1」を「ujis」に変更します。

※出力されるファイルはUTF-8だった場合は、文字化けしていない事を確認してから、文字コードをEUCに変更して保存し直してください。

(ファイルの文字コードをUTF-8のままでリストアを実行する場合は、「SET NAMES utf8」とすれば大丈夫かもしれません。※いづれの場合も、カラムのデータ挿入部分の「CHARSET=latin1」は「CHARSET=ujis」にします。)

※テーブルにデータを挿入した方法によっては、上記の方法でも文字化けしたデータしか出力されない場合もあります。


3 ● chuken_kenkou
●26ポイント

MySQLのバージョンを、明記するようにしてください。

MySQL 5.1なら、ALTER TABLEのCHANGE句を使って、列の定義変更が可能です。今回のように列名は同じで、データ型などを変更する場合は、同じ列名を指定することになります。

alter table t1
 change c3 c3 varchar(10) character set ujis collate ujis_japanese_ci

MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.1.8 CREATE TABLE 構文

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ