#実際、VARCHAR データ型は、可変長文字データをシングルバイト文字とマルチバイト文字で格納します。このデータ型の構文は VARCHAR(n) です。n はテーブルの作成時に指定する必要がある最大文字数です。 MySQL 5.03 より前では、n の値は 0 ~ 255 の範囲にすることができましたが、MySQL 5.03 以降では、値は 0 ~ 65,535 の範囲にすることができました。
VARCHAR に格納される最大文字数は、最大行サイズと使用される文字セットによって異なります。 ASCII 文字セットを使用する場合、ASCII は 1 文字あたり 1 バイトを使用するため、65,535 文字を保存できます。一方、utf8 文字セットを使用する場合、utf8 は 1 文字あたり 3 バイトを使用するため、文字制限は 21,844 になります。行サイズの最大制限は 65,535 バイトです。つまり、すべての列を含めた行サイズは 65,535 バイトを超えてはなりません。
mysql> Create Table var_test(FName Varchar(32765) NOT NULL, LName Varchar(32766) NOT NULL); Query OK, 0 rows affected (0.25 sec)
上記のクエリは、FName Varchar(32765) と LName Varchar(32766) の 2 つの列を持つテーブルを作成します。したがって、合計の長さは 32765 2 32766 2 = 65535 になります (長さを格納するために列ごとに 2 バイトを使用します)。
mysql> Create Table var_test1(FName varchar(32766) NOT NULL, LName Varchar(32766) NOT NULL); ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
現在、上記のクエリに示すように、長さが 1 バイト増加すると、MySQL はエラーを返します。
以上がMySQL VARCHAR カラムの最大長はどれくらいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。