MySQL的charset是指字符集,決定了數據庫中的字符編碼方式,對于固定的字符集如ASCII和iso-8859-1,字符集的選擇并不會對存儲產生太大的影響。但是對于像中文、日文、韓文這樣的字符集來說,字符集的選擇就十分重要。
在MySQL中,可以通過更改charset來更改字符集,下面是更改為UTF-8字符集的示例代碼:
ALTER DATABASE {DATABASE_NAME} DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; ALTER TABLE {TABLE_NAME} CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
代碼中的DATABASE_NAME是數據庫的名字,TABLE_NAME是表的名字,它們需要替換為正確的名稱。
這段示例代碼將數據庫的字符集更改為UTF-8,并且將表中的字符集也一并更改為UTF-8??梢葬槍Σ煌男枨蟾牟煌淖址?。
在更改過程中可能會遇到以下的錯誤:
- ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes
- ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
這些錯誤都是因為MySQL引擎在計算索引或者行的數據大小時,會把每個字符都當做3個字節來計算。因此如果字符集更改為UTF-8,一個中文字符會占用3個字節,可能導致索引或者某些列過長。
如果遇到這些錯誤可以考慮更換數據類型,如將VARCHAR更換為TEXT或者BLOB類型,或者設置合適的索引長度。
上一篇css網頁固定縮放比例
下一篇css網頁圖片透明