是否可以在MySql中原生地自动增加字母?如果没有,你可以根据我在下面的申请说明建议和替代吗?
背景
我正在构建一个Warehouse管理应用程序。为了找到仓库中的物品,我想我会将货架列1,2,3 ..和货架行编号为a,b,c,... aa,ab,ac .... 要在架子中定位特定单元格,您将获得两者的组合,例如,小部件位于“4d”。 为此,我将有一个带有自动递增主键的ShelfColumn表和一个带有自动递增字母的ShelfRow表。一个关联表将加入这两者,形成独特的货架崇敬,以定位我的货物。
答案 0 :(得分:2)
不,你不能自动增加字母,也不需要。
关于MySQL中auto_increment PK的快速故事:从某种意义上讲,它应该永远不要依赖于它的行为。 InnoDB也使用它来确定如何将数据物理地保存到硬盘驱动器。
因此,如果你只是让auto_increment增加数字而不干扰并试图给它添加字母,那么它是最好的。
另一方面,用字母标记货架行的需要是什么?我认为没有理由不用数字来标记它。你会得到一个很好的矩阵,任何人都会立刻知道第10行25是什么以及如何找到它。
答案 1 :(得分:1)
我不认为自动增量会支持这种功能。毕竟,它必须知道每种语言和每个字符集,以了解自动增量的内容,以及当它到达给定字母表中的最后一个字符时应该做什么,不要介意如何处理非字符符号(标点符号,空格,控制代码等)。
你要么必须在你的应用程序逻辑中实现字母选择,要么为你的行使用数值并将它们转换为输出上的字母(a代表1,b代表2,aa代表27,ab代表28,等等)。