2010-11-29 242 views

回答

6

該限制不在文字字符串的長度上,而是在表格定義上。

MySQL documentation指出

每個表都有一個包含表定義的.frm文件。服務器使用以下表達式來檢查文件中存儲的一些表信息的上限爲64KB。

然後是一個表達表定義的近似大小的ad-hoc方程。

對於一個簡單的測試,在一個已經有幾個字段的表中,我得到的枚舉長達63136個字符,而.frm是71775個字節大(略大於70KB),所以限制是近似的。那時候,MySQL抱怨#1117 - Too many columns,這至少是誤導。

有趣/奇怪/值得注意,枚舉的字符集將改變最大長度。 - 即使您使用的是普通字符,每個字符只需要1個字節。

3

ENUM列可以具有最多65,535個不同的元素。 (實際限制小於3000.)一個表的ENUM和SET列中的唯一元素列表定義被視爲一個組。

相關問題