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 即可。