65

MySQL の varchar フィールドの最大長を明確にする必要があります。

私は常に最大長が 255 だと思っていました (255 とは? 私が想定した文字ですが、これは私の混乱の原因かもしれません)。私たちが協力している外部企業によってセットアップされたデータベースのテーブルを見ると、255 文字を超える xml のチャンクを保持する varchar(20000) としてフィールドがセットアップされていることがわかります。なぜこれが機能するのですか?20000 は有効な値ですか?

少しグーグルで調べたところ、mysql では varchar に 65,535 バイトの制限があり、varchar(65535) in useが表示されていることがわかりましたが、255 の制限はこれとどのように関連していますか?

4

6 に答える 6

78

MySQL のバージョンに注意してください。

http://dev.mysql.com/doc/refman/5.0/en/char.html

VARCHAR 列の値は可変長文字列です。長さは、MySQL 5.0.3 より前では 0 から 255、5.0.3 以降では 0 から 65,535 の値として指定できます。MySQL 5.0.3 以降での VARCHAR の有効な最大長は、最大行サイズ (すべての列で共有される 65,535 バイト) と使用される文字セットの影響を受けます。

使用している MySQL のバージョンは?

次のクエリを実行します...

select version() as myVersion
于 2009-08-20T01:21:01.120 に答える
12

最大長が 255 から 65535 に変更されたバージョン 5.0.3 以降で有効です。

CHAR常に最大 255 でした。

http://dev.mysql.com/doc/refman/5.0/en/char.html

于 2009-08-20T01:19:45.737 に答える
8

入力が大きすぎると予想される場合は、代わりに TEXT、MEDIUMTEXT、または LONGTEXT を使用することをお勧めします。

于 2009-08-20T01:19:48.327 に答える
3

インデックスは varchar(2000) に構築できませんが

于 2009-09-27T10:56:42.943 に答える
1

MySQL マニュアルの状態

VARCHAR 列の値は可変長文字列です。長さは、MySQL 5.0.3 より前では 0 から 255、5.0.3 以降では 0 から 65,535 の値として指定できます。

したがって、使用しているバージョンによって異なります。

于 2009-08-20T01:29:04.370 に答える