データベース文字セット
MySQLには、ユーザーが異なるレベルで異なる文字セットを指定できる機能があります。
レベル | 例 |
---|---|
データベース |
create database test charset utf8; |
表 |
create table test( id int, name char(100)) charset utf8; |
列 |
create table test ( id int, name1 char(100) charset gbk, name2 char(100) charset utf8)); |
サポートの制限事項
-
データベースの文字セットをutf8mb4/utf8に指定すると、デフォルトの照合は
utf8mb4_unicode_ci
/utf8_general_ci
になります。collation_server=utf8mb4_bin
を指定すると、データベースはデータをバイナリとして解釈します。たとえば、CHAR
列の長さを4に指定した場合、4バイトを超えるデータを挿入しようとすると、データが長すぎることがターゲット・データベースから警告されますが、返されるバイト長は16 (utf8mb4
の場合)になります。これはデータベースの制限のため、Oracle GoldenGateではバイナリ照合をサポートしていません。この問題を解決するには、文字セットがutf8mb4およびcollation_server=utf8_bin
(UTF-8)に設定されている場合に、collation_server=utf8mb4_bin
を指定します。 -
次の文字セットはサポートされていません。
armscii8
keybcs2
utf16le
geostd8