version: 2.18.2(x64 edition)
を使っています。
MySQL 8.0.32での挙動について質問です。
show variables where variable_name like ‘%char%’;
Variable_name Value
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database utf8mb4
character_set_filesystem utf8mb4
character_set_results utf8mb4
character_set_server utf8mb4
character_set_system utf8mb3
character_sets_dir C:\Program Files\MySQL\MySQL Server 8.0\share\charsets\
‘テーブルを準備
CREATE TABLE test4
(
cid
smallint NOT NULL,
tel
varchar(11) DEFAULT NULL,
ucode
varchar(4) DEFAULT NULL,
PRIMARY KEY (cid
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
‘データを準備
insert into hjn_mikotoba.test4(cid,tel,ucode) values
(1,’01201234987′,’あいうえ’);
‘使えないcollateを敢えて使えるようにしたいことがあり、以下のSQLを実行したとします。
set names utf8;
そのあと、
select * from test4;
を実行すると、
cid tel ucode
1 あいう
になります。telにある11桁の数字は消えます。ucodeの4文字あった日本語は3文字に減ります。
その他のテーブルでは選択すると
#42522Unknown Column ‘LT test1(id varchar(2) NOT NULL’ in ‘order clause’
と表示されたり、
「すべてのデータベース情報の再読み込み」すると、今まで「ビュー」に分類されていたものまで「テーブル」の方に
入っていて、ビューだったものをダブルクリックで閲覧しようとすると
#42522Unknown Column ‘ORITHM=UNDEFINED’~
のようなアラートが表示されます。