自动在自增字段前添加字母

3

在MySQL中,是否可以在自动递增的数字前面添加一个字母?我的数据库中有几个表,其中一些具有由自动递增创建的唯一ID。我希望能够通过在数字前面添加一个字母来区分自动生成的数字。

这不是绝对必要的功能,但它可以帮助简化小任务。


只是为了澄清一下:您想要的是让tableA中的所有键都以A123的形式出现,让tableB中的所有键都以B123的形式出现,以此类推,这样键就在数据库中变得全局唯一? - Russell Zahniser
3个回答

4

您可以为需要在其ID值前加上不同字母的表创建视图,并通过这些视图读取表:

CREATE VIEW VTableA
AS
SELECT
  CONCAT('A', ID) AS ID,
  <i>other columns</i>
FROM TableA

同样适用于其他表格。

3

很遗憾,您不能这样做。至少在sql中不行。自增字段是整数类型,所以在那里添加字母会违反约束。

您可以查看下面的链接,了解一些解决此问题的方法。

MySQL自动递增加字母数字

我希望这能指引您走向正确的方向。


0
最佳答案可能取决于您对字母数字ID的定义。如果字母部分以某种方式递增,那么规则是什么?如果字母部分是静态的,则不需要在DB中使用它:只需在输出时将其前置到数字ID之前(可以使用[s]printf()或类似函数前置零以使其长度固定)。但是,如果不知道完整要求,我们都只是在猜测。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接