ホーム › フォーラム › A5:SQL Mk-2掲示板 › MySQL 8.0で#42522Unknown Column エラー
-
投稿者投稿
-
rshim21
ゲスト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 TABLEtest4(
cidsmallint NOT NULL,
telvarchar(11) DEFAULT NULL,
ucodevarchar(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’~
のようなアラートが表示されます。松原正和
キーマスターrshim21 さんこんにちは。
たしかに、telの値が表示されなくなったりなどを確認しましたが、A5:SQL Mk-2で、set names utf8; を実行することの意味がよく分かりませんでした。
現象は再現できたので、調査してみますが、DB接続ライブラリ内部の挙動になるので少し難しいかもしれません。 -
投稿者投稿