2014年5月12日月曜日

[MySQL]iOSの絵文字に対応させる

このエントリーをはてなブックマークに追加 Clip to Evernote
iOSの絵文字は普通のutf8じゃなくてマルチバイト(4バイト)utf8なんだそうで。
通常のutf8のカラムにinsert/updateしようとするとエラーで怒られちゃいます。

新規テーブルだと、一旦設定してしまえばいいんですが。
既存でデータがある場合だと以下のやり方でやればOK。

How to easily convert utf8 tables to utf8mb4 in MySQL 5.5

一回やったのにやり方忘れたので忘備録も兼ねて。
# For each database:
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
# For each table:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# For each column:
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

りんごさんに殺意を覚えますよねw