我有這個奇怪的問題。字符集和整理不會出現在創建表的列定義上
在MySQL 5.7.18安裝在Ubuntu的服務器16.04我創建一個表是這樣的:
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_bin),我可以看到我在創建表的指令中使用的定義。
現在,我有這個新問題。列定義中的字符集和排序規則必須不同(例如,utf8和utf8_bin)纔會出現?
再次感謝。
洛倫佐。
Hi @Rares Abrudan。謝謝。但是,我創建表後,我的問題是在列定義。如果我檢查創建的表(SHOW CREATE TABLE),它不包含我在CREATE TABLE指令中定義的定義。 – Lorenzo