问题描述
有很多例子解释了如何创建不同长度的文本字段,但只有这些选项:
- Tiny:256 字节(Rails 中的字符串等价物)
- 文本:65_535 字节(相当于 Rails 中的文本)
- 中文本:16_777_215 字节
- 长文本:4_294_967_295 字节
我找到的所有参考文献都非常古老(> 3 岁)。这仍然有效吗?
我想创建一个 512 个字符的字符串字段。我应该选择 Text
列吗?看起来很浪费空间。我可以创建一个 512 字节的特定字段吗?
解决方法
看起来在新版本中,Mysql 文本字段允许字段大小有更多的粒度。
如果我在迁移中这样做:
change_column :scrapers,:url,:string,limit: 512
我在 sql 日志中看到了这一点:
ALTER TABLE `scrapers` CHANGE `url` `url` varchar(512) NOT NULL
这是mysql表结构中的:
`url` varchar(512) COLLATE utf8mb4_bin NOT NULL,