现象
启动项目时,在自动创建表与对应字段的时绝大部分创建成功,但是个别字段或者新加入的字段没有自动添加成功。
原因以及解决方式之一
在自动生成表对应字段的时候,如果一张表的内所有字段的长度超出表本身的限制,那么添加新字段的时候将会添加失败。
但是 text 系列的字段长度并不计入数据库表总长度的限制当中,但也不能因此使用大量 text 系列的字段类型,最好合理安排所有字段的长度设计,有需要时可以对表进行拆分。
生成字段时可以指定 Column 长度。避免默认长度导致资源浪费。
例如:
但部分环境下这个限制会相对提高,对于表本身长度的限制应该也有可以修改的地方,这里暂不深究。
如有需要可以查找如何提高表的容量限制,但一味的提升容量对于表并没有好处,问题终究会暴露出来
建议综合考虑部署环境和日后维护难度,和业务容量,合理安排资源,个别超长字段选用 text 或者 Blob类型替代,适当做出表拆分。
Mysql是存在表字段总长度限制的:
每行允许最多4096字节长度,超过了最大长度是不行的。
mySQL对列限制比较宽松,好像最多允许1024个列。
但是每行记录的长度有限制。