搜索docs,但无济于事 枚举值的最大长度是多少,即字符串文字?
答案 0 :(得分:8)
限制不在文字字符串的长度上,而是在表定义上。
每个表都有一个包含表定义的.frm文件。服务器使用以下表达式来检查存储在文件中的一些表信息,而不是64KB的上限。
然后是表示表定义的近似大小的ad-hoc等式。
对于一个简单的测试,在一个已经有几个字段的表中,我的枚举长达63136个字符,而.frm大71775字节(略大于70KB),所以限制是近似值。那时,MySQL抱怨#1117 - Too many columns
,这至少可以说是误导。
有趣/奇怪/值得注意,枚举的字符集将改变最大长度。 - 即使您使用的普通字符也只需要1个字节。
答案 1 :(得分:5)
ENUM列最多可包含65,535个不同的元素。 (实际限制小于3000.)一个表在其被视为一个组的ENUM和SET列中不能超过255个唯一元素列表定义。