

`Mysql2::Error: Data too long for column 'hoge' at row 1`

このようなエラーが出てしまい困っています。  
`hoge`はtext型にしてあるので上限はないものだと思っていたのですが、、、

ちなみに今回エラーが出たデータは全角半角含めて67441文字ほどでした。

textで扱いきれないデータはどのような型にすればよいのでしょうか。


CC BY-SA 3.0
2015-12-16T06:03:12.257
20054
2015-12-16T06:34:12.897
9149
question
mysql
MySQLのtextフィールドの上限について


マニュアルには次のように書かれています。  
<https://dev.mysql.com/doc/refman/5.6/ja/string-type-overview.html>

> 最大長が 65,535 (216 − 1) 文字の TEXT カラム。値にマルチバイト文字が含まれる場合、有効な最大長は少なくなります。

ややこしい書き方ですが、要するに65,535バイトということです。

TEXT で足りないのであれば、MEDIUMTExT(16,777,215バイト), LONGTEXT(4,294,967,295バイト) が使用できます。

なお、上限が無いデータ型はありません。


CC BY-SA 3.0
2015-12-16T06:34:12.897
20057
2015-12-16T06:34:12.897
3249
20054
answer