Open2

MySQL 小ネタ

しかたこうきしかたこうき

ターミナルでMySQL CLIを使っているときに、日本語が表示されない

ログインするときに、文字コードを指定する

mysql -u ユーザー名 -p --default-character-set=utf8mb4

もしくは、設定ファイルに文字コードを指定しておく

/etc/my.conf

[mysqld]
character-set-server=utf8 #mysqldセクションの末尾に追加

[client]
default-character-set=utf8 #clientセクションを追加
しかたこうきしかたこうき

カラムの型を後から変更したい

ここでは、文字列から、数値に変更する場合を例とする。

  • テーブル名:sample
  • カラム名:kind

まず、数値型のカラムを別名で作成する

ALTER TABLE sample
ADD COLUMN kind_num INT;

次に、既存カラムに入っている文字列の値を、数値にキャストしてコピーする。

UPDATE sample
SET kind_num = CAST(kind AS UNSIGNED);

うまくコピーされているか確認

SELECT kind, kind_num
FROM sample
LIMIT 10;

↓結果

+------+----------+
| kind | kind_num |
+------+----------+
| 101  |      101 |
| 101  |      101 |
| 101  |      101 |
| 101  |      101 |
| 201  |      201 |
| 201  |      201 |
| 201  |      201 |
| 201  |      201 |
| 201  |      201 |
| 201  |      201 |
+------+----------+

↑この状態で成功していると判断できる。
その後、下のkindカラムを削除する

ALTER TABLE organizations_master
DROP COLUMN kind;

最後に、kind_numを、kindにリネームして完了

ALTER TABLE organizations_master
CHANGE COLUMN kind_num kind INT;