我有一个MySQL数据库,目前使用tinyint
字段来存储记录类型。它使用奇数编号,我们正在改变这一点。目前,它的内容如下:
record type
1 60
2 62
3 60
4 61
5 63
数字代表类型,包括:
60 = car
61 = bike
62 = motorcycle
我们需要使用值car
,bike
,motorcycle
将其转换为枚举字段。但是,有问题的表是从大量页面中使用的,其中SELECTs和INSERT是使用原始数字进行的。这将逐渐改变。所以我想知道:有没有办法改变枚举字段的索引,这样我就可以将字段更改为枚举并仍然保存类型为60的新记录,这就变成了“汽车”?我知道有一种方法可以将它设置为0并且它将成为汽车,但显然需要我们更改所有页面并且没有时间进行此操作...
答案 0 :(得分:3)
不幸的是,这是不可能的。 The manual本身没有留下任何希望的空间:
每个枚举值都有一个索引:
•列中允许元素列表中的值 规范从1开始编号。
看到你无能为力,我不得不问:为什么你需要把它作为enum
?我还没有遇到过enum
提供任何的好处的情况,方便那些通过眼睛查看查询结果的程序员。您希望获得什么好处?我不是大师,但恕我直言,无论你想要实现什么,都有另一种(更好的)方式,而不是使用enum
。