[英]How to convert MYSQL UTF-8 when a row size is too large?
我在一個MYSQL數據庫上,試圖將以latin1編碼的表更改為UTF-8。 表名是Journalist,有12列列為varchar,最大長度為3000。這是我正在運行的sql。
ALTER TABLE `journalist` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
我收到的錯誤
行大小太大。 不包括BLOB在內的已使用表類型的最大行大小為65535。這包括存儲開銷,請查閱手冊。 您必須將某些列更改為TEXT或BLOB
在運行此轉換查詢之前,是否需要更改表的大小? 和/或否則我將如何完成此編碼更改?
我按照@Wrikken的建議做了。 我刪除了表並將varchar的max_length屬性從3000降低到1500。然后在新的空表上運行了此SQL
ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
從這里,我使用腳本用備份表重新填充了它。
要回答這個問題:降低varchar max_length限制或將varchar字段更改為LONGTEXT或BLOBS
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.