私はこの奇妙な問題があります。 Ubuntuのサーバ16.04にインストールMySQLの5.7.18でキャラクタセットと照合が作成テーブルの列定義に表示されない
私はこのような表を作成します。
CREATE TABLE `test` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`SURNAME` varchar(108) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `SURNAME` (`SURNAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=' (Enc.)'
しかし、私はこの命令実行した場合:
SHOW CREATE TABLE test;
を私が表示されません文字セット、およびCREATE TABLE命令で定義した照合順序が含まれます。
明らかに、作成完了後にエラーや警告はありません。
現在、私はUTF8にデータベースと
誰でも、なぜこの行動のを知っているutf8_general_ciする照合の文字セットを設定していますか?そしてもしそうなら、私はこの問題を解決するために何ができますか?
P.S .:この投稿が重複している場合は、私を殺さないでください。
ありがとうございました。
ロレンツォ。
UPDATE
私は別のテストを行いました。 SHOW CREATE TABLEで別の文字セット(utf8_bin)と別の文字セット(utf8)を使用すると、私はそのテーブルの作成に使用した定義を見ることができます。
今、この新しい質問があります。列定義内の文字セットと照合は異なる(例えば、utf8とutf8_bin)ようにする必要がありますか?
もう一度おねがいします。
ロレンツォ。
こんにちは@Rares Abrudan。ありがとう。しかし、私の問題は、テーブルを作成した後のカラム定義にあります。作成したテーブル(SHOW CREATE TABLE)をチェックすると、CREATE TABLE命令で定義した定義が含まれていません。 – Lorenzo