在枚举字段上设置索引

时间:2011-12-04 16:07:53

标签: mysql enums

我有一个MySQL数据库,目前使用tinyint字段来存储记录类型。它使用奇数编号,我们正在改变这一点。目前,它的内容如下:

record type
1      60
2      62
3      60
4      61
5      63

数字代表类型,包括:

60 = car
61 = bike
62 = motorcycle

我们需要使用值carbikemotorcycle将其转换为枚举字段。但是,有问题的表是从大量页面中使用的,其中SELECTs和INSERT是使用原始数字进行的。这将逐渐改变。所以我想知道:有没有办法改变枚举字段的索引,这样我就可以将字段更改为枚举并仍然保存类型为60的新记录,这就变成了“汽车”?我知道有一种方法可以将它设置为0并且它将成为汽车,但显然需要我们更改所有页面并且没有时间进行此操作...

1 个答案:

答案 0 :(得分:3)

不幸的是,这是不可能的。 The manual本身没有留下任何希望的空间:

  

每个枚举值都有一个索引:

     

•列中允许元素列表中的值   规范从1开始编号。

看到你无能为力,我不得不问:为什么你需要把它作为enum?我还没有遇到过enum提供任何的好处的情况,方便那些通过眼睛查看查询结果的程序员。您希望获得什么好处?我不是大师,但恕我直言,无论你想要实现什么,都有另一种(更好的)方式,而不是使用enum