ENUM值的最大长度是多少?

时间:2010-11-29 19:23:26

标签: mysql enums types

搜索docs,但无济于事 枚举值的最大长度是多少,即字符串文字?

2 个答案:

答案 0 :(得分:8)

限制不在文字字符串的长度上,而是在表定义上。

MySQL documentation表示

  

每个表都有一个包含表定义的.frm文件。服务器使用以下表达式来检查存储在文件中的一些表信息,而不是64KB的上限。

然后是表示表定义的近似大小的ad-hoc等式。

对于一个简单的测试,在一个已经有几个字段的表中,我的枚举长达63136个字符,而.frm大71775字节(略大于70KB),所以限制是近似值。那时,MySQL抱怨#1117 - Too many columns,这至少可以说是误导。

有趣/奇怪/值得注意,枚举的字符集将改变最大长度。 - 即使您使用的普通字符也只需要1个字节。

答案 1 :(得分:5)

ENUM列最多可包含65,535个不同的元素。 (实际限制小于3000.)一个表在其被视为一个组的ENUM和SET列中不能超过255个唯一元素列表定义。