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;