初めてのシステムと日記

システムも日記も初めてです。

研修(テーブル、カラムの文字コードについて)

昨日まで作成したテーブル、カラムの

文字コードが全てlatin1になっていた。

これをutf8に変更する。


テーブルの文字コードを修正すればカラムも修正されると思い、

テーブルの文字コードをutf8に変更した。

mysql> alter table user_info character set utf8;
mysql> show create table user_info;
| user_info | CREATE TABLE `user_info` (
  `userid` int(11) NOT NULL auto_increment,
  `lastname` text NOT NULL character set latin1,
   ・
   ・
   ・
  `opinion` text character set latin1,
  `createtime` datetime NOT NULL,
  `updatetime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  PRIMARY KEY  (`userid`),
  KEY `prefid` (`prefid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |

どうやらテーブルの文字コードを変更しても

カラムの文字コードは変更しない様子。


カラムの文字コードを変更するには、

mysql> alter table test modify firstname text set utf8;


たださすがにカラム数分繰り返すのはしんどい。

現状ではテーブルを作成し直し、その時に文字コードを設定するようにして対処した。

mysql> create table user_infoc(
    -> userid int not null auto_increment,
    ・
    ・
    ・
    -> foreign key(prefid) references pref_info(prefid)
    -> ) default charset=utf8;

これで文字コードの設定が完了。


一番良い方法はデータベース作る時点で文字コード設定をする。


複数のカラムに対して同じ処理を実行するクエリってあるのだろうか?要調査。