簡體   English   中英

當行大小太大時,如何轉換MYSQL UTF-8?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM