Data Management (DMS) で MySQL データベースに対して SQL ステートメントを実行すると、合計行サイズが 65,535 バイトの制限を超えるため、「Row size too large」というエラーが返されます。この問題を解決するには、サイズの大きいカラムを TEXT または BLOB に変換するか、カラム長を短くします。
問題の説明
DMS コンソールで ApsaraDB RDS for MySQL またはセルフマネージド MySQL データベースに対して SQL ステートメントを実行すると、次のエラーが返されます。セルフマネージドデータベースは、Elastic Compute Service (ECS) インスタンスまたはインターネットデータセンター (IDC) にデプロイできます。
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 は、ストレージエンジンに関係なく、合計行サイズに 65,535 バイトの制限を課します。InnoDB がより大きい行をサポートしている場合でも、この制限は適用されます。MySQL:テーブルカラム数と行サイズの制限。
ソリューション
次のいずれかの方法を使用します。
-
サイズの大きい VARCHAR または CHAR カラムを TEXT または BLOB に変更します。
-
DMS コンソールにログインします。
-
ナビゲーションウィンドウで、データベースインスタンスを展開し、ターゲットデータベースをクリックします。
-
SQL コンソールページで、ターゲットテーブルを右クリックし、[Edit Table Schema] を選択します。
-
[Edit Table] ページで、[Column Information] タブをクリックし、カラムタイプを TEXT または BLOB に変更します。
-
-
サイズの大きい VARCHAR または CHAR カラムの長さを短くします。
-
DMS コンソールにログインします。
-
ナビゲーションウィンドウで、データベースインスタンスを展開し、ターゲットデータベースをクリックします。
-
SQL コンソールページで、ターゲットテーブルを右クリックし、[Edit Table Schema] を選択します。
-
[Edit Table] ページで、[Column Information] タブをクリックし、カラム長を短くします。
-
対象
-
Data Management (DMS)
-
ApsaraDB RDS