在MySQL中,使用ENUM類型可以讓我們在一個列中定義一組有限的可能值。這些可能的值可以包含到255個不同的值,并且每個值最大長度為65535個字符。但是,在實(shí)踐中,這可能不是最優(yōu)的解決方案,因?yàn)樗鼤加么罅康目臻g。
CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `gender` enum('M','F') NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
上面的例子中,在gender列中,我們定義了兩個可能值 'M' 和 'F'。這個列將占用 1 byte 的存儲空間,以便能夠存儲這兩個可能值。
請注意,在使用ENUM類型時,如果您要添加新值,則必須在表結(jié)構(gòu)中進(jìn)行更改。這是因?yàn)镋NUM值是與表結(jié)構(gòu)一起存儲的。因此,更改ENUM類型可能會導(dǎo)致表發(fā)生較大的變化。
總的來說,在MySQL中使用ENUM類型來存儲一個列的可能值是非常方便的。但是,最好只在您確認(rèn)對于該列將要使用的可能值非常小而且穩(wěn)定時,才使用ENUM類型。
上一篇enum用法mysql