PDF (美式信紙) - 24.6Kb
PDF (A4) - 23.3Kb
2016 年 9 月
先前的版本使用大小寫混合的表格名稱。由於 MySQL Shell 區分大小寫,表格名稱已變更為小寫。
2019 年 12 月
已變更 world.sql 檔案以解決數個問題
-
world資料庫使用latin1,但 MySQL 8.0 版起使用utf8mb4的預設字元集。將資料庫轉換為使用utf8mb4可使其與 MySQL 8.0 版同步,同時保留與較舊系列的相容性。將資料庫轉換為
utf8mb4的步驟如下:USE world; -- turn off foreign key checking; otherwise, the ALTER TABLE -- statements fail with incompatible foreign key errors. SET SESSION foreign_key_checks=0; -- convert database and tables to utf8mb4 ALTER DATABASE world CHARACTER SET utf8mb4; ALTER TABLE city CONVERT TO CHARACTER SET utf8mb4; ALTER TABLE country CONVERT TO CHARACTER SET utf8mb4; ALTER TABLE countrylanguage CONVERT TO CHARACTER SET utf8mb4; -- re-enable foreign key checking SET SESSION foreign_key_checks=0; -
MySQL Shell 需要
utf8mb4字元集才能進行 X Protocol 連線。使用此類連線載入latin1編碼的world.sql檔案會產生錯誤。使用 mysqldump 並搭配
--default-character-set=utf8mb4選項來設定字元集,以及--set-charset,以便傾印包含該字元集的SET NAMES,這會寫入一個utf8mb4編碼的傾印檔案。將world.sql的編碼變更為utf8mb4,允許使用 X Protocol 連線在 MySQL Shell 中載入時不會發生錯誤。 -
MySQL 8.0.17 版已棄用這些功能:
浮點數欄位定義中的位數;例如
FLOAT(10,2)。整數欄位定義中的顯示寬度;例如
INT(10)。
world.sql檔案使用了這兩種功能,導致 MySQL 8.0.17 及更高版本中出現載入警告。為了避免
FLOAT欄位中的位數,必須手動修改相關欄位。方法如下,將FLOAT(變更為M,D)DECIMAL(M,D)USE world; ALTER TABLE country MODIFY SurfaceArea DECIMAL(10,2) NOT NULL DEFAULT '0.00', MODIFY LifeExpectancy DECIMAL(3,1) DEFAULT NULL, MODIFY GNP DECIMAL(10,2) DEFAULT NULL, MODIFY GNPOld DECIMAL(10,2) DEFAULT NULL; ALTER TABLE countrylanguage MODIFY Percentage DECIMAL(4,1) NOT NULL DEFAULT '0.0';若要在傾印檔案中產生不含顯示寬度的整數欄位定義,只需使用 MySQL 8.0.19 或更高版本的 mysqldump 即可。