MariaDB エラー「#1074 – 列 ‘c1’ のサイズ定義が大きすぎます (最大 16383 まで)」が発生した場合の対処法

MariaDB エラー「#1074 – 列 ‘c1’ のサイズ定義が大きすぎます (最大 16383 まで)」が発生した場合の対処法

MariaDBで、エラー「#1074 – 列 ‘c1’ のサイズ定義が大きすぎます (最大 16383 まで)」が発生した場合の対処法を記述してます。

環境

  • OS MIRACLE LINUX release 8.4 (Peony)
  • MariaDB 10.6.5

エラー全文

以下のcreate文を実行時に発生。

CREATE TABLE huga( c1 varChar(16384) );

エラー全文

#1074 - 列 'c1' のサイズ定義が大きすぎます (最大 16383 まで)。
代わりに BLOB または TEXT を使用してください。

原因

VARCHARの最大長である「65,535バイト」を、文字コードが4倍との「utf8md4」に指定されて範囲を超えているため。
「65535 ÷ 4 = 16383.75」となります。

対処法

範囲内を指定する

CREATE TABLE huga( c1 varChar(16383) );