質問: 現在、Ruby on Rails 5.1.6 と MySQL 5.6 を使用して開発しております。 聞きたいこと ------- 掲題の通りなのですが、MySQL 5.6 では TEXT カラムにデフォルト値を設定できません。 > > BLOB および TEXT カラムにはデフォルト値を割り当てられません。 > > > ※ MySQL 5.6 リファレンスマニュアルより引用 実際にアプケーションでデフォルト値を設定しようとするエラーになってしまいます。 しかし、同じ文字列でも VARCHAR カラムはデフォルト値を設定できます。 あまりデータベースの仕様には詳しくないのですが、 MySQL ではなぜこのような仕様になっているのかを知りたいです。 よろしくお願いいたします。
回答: > > MySQL ではなぜこのような仕様になっているのかを知りたい > > > 直接的な理由としては、TEXT/BLOBSの値は直接レコードバッファに格納されない(他の型との実装が異なる)ためです。 なぜそのような実装になっているのか等、根本的な理由に関してはMySQLの開発チームでないとわからないと思います。 おそらくメモリを節約するためだと思うのですが。 これは、結構前から機能要求が出ていますが、未だ対応されていません。