11 12

[MySQL]カラムのCOLLATE/CHARACTER SETを再設定する

Tag: Webプログラミングuechoco @ 14 : 29 : 52

昔から運用しているデータベースには、文字コードをlaten1で運用しているものもあったりします。DEFAULT CHARACTER SETはシステム設定で変更できますが、テーブルのカラムに紐づいているCHARACTER SETの変更方法はALTER TABLEでて着るようです。

MySQL/ALTER - MinacoWiki

列の型変更

ALTER TABLE テーブル名 CHANGE sample_name sample_name VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;
ALTER TABLE テーブル名 CHANGE sample_name sample_name VARCHAR(6) NULL DEFAULT NULL;

よく間違えるのは、CHARACTER SETよりも前にNULLを書くこと。順番が違うとエラーになるので、上記を参考に記述しましょう。ちなみに、マニュアルでは、"CHANGE a a"の代わりに"MODIFY a"も使えるとの記述もありました。