変な列名を持つ MySQL のテーブルを調べています。列の名前を変にならないように変更したい。どうすればいいのかわかりません。
まず、私が最初に行う場合
SET NAMES utf8;
DESC `tblName`;
私は得る
| Ԫ | varchar(255) | YES | MUL | NULL | |
代わりに、
SET NAMES latin1;
DESC `tblName`;
結果は
| ? | varchar(255) | YES | MUL | NULL | |
十分に公平です-これにより、列名は単にlatin1の疑問符だと思います。しかし、このステートメントは機能しません:
mysql> ALTER TABLE `tblName` CHANGE COLUMN `?` `newName` VARCHAR(255);
ERROR 1054 (42S22): Unknown column '?' in 'tblName'
そこで、情報を得るために information_schema テーブルに移動しました。
mysql> SELECT column_name, HEX(column_name), ordinal_position FROM information_schema.columns WHERE table_schema = 'myschema' AND table_name = 'tblName' ;
| ? | D4AA | 48 |
私はこの hex point を調べました。正しく調べたと仮定すると (これは正しくない可能性があります)、この文字は「ハングル音節 pweoj」である「풪」であると判断しました。だから私は無駄にalter tableステートメントでそれを試しました:
ALTER TABLE `tblName` change column `풪` `newName` VARCHAR(255);
だから、私が立ち往生しているところです。